Fork me on GitHub
#clojure-dev
<
2017-04-30
>
cfleming10:04:35

@ghadi: “The MethodHandles have to get hot” is that per call site, i.e. per specific template instance?

cfleming10:04:47

I’m not sure of the implications of MethodHandle.partial

cfleming10:04:12

If I have two instances of {:foo <something> :bar <something>} at different locations in my code, is the MethodHandle reused? What about if the <somethings> are equal?

ghadi13:04:28

The templating methodhandle with its arguments is not reused, but the underlying raw handle is shared. MethodHandle.partial is actually MethodHandle.insertArguments (had to use the pseudocode to make it accessible)

ghadi13:04:51

And guess what, the performance doesn't pay off until about 4 map entries