Fork me on GitHub
#cljs-dev
<
2017-11-28
>
rauh16:11:00

@mfikes I just improved the compiler performance a bit (like ~20%). But not sure about the impact on self host. Test seem to pass, but if you have a second, could you test the perf?

mfikes16:11:07

@rauh Yes. Is there a patch somewhere?

rauh16:11:30

I'll create a ticket + patch if the perf seems to be good.

mfikes16:11:31

Cool. I can try compiling Andare, or other large namespaces and let you know.

rauh16:11:39

@mfikes Sorry just changed (first (.next it)) to (key (.next it)) which should be faster. Gist updated.

mfikes16:11:05

OK. Also, I’d recommend (.-length ns) over (alength ns)

rauh16:11:38

Good point. Will edit.

mfikes16:11:56

@rauh I see no change in perf for (require 'cljs.core.async). I forget, does this code benefit if you have a lot of namespaces at play?

rauh16:11:21

@mfikes I think so, yes.

mfikes16:11:03

Hmm… wait, I seem to remember benchmarking this by seeing how long it takes the (JVM) compiler to compile Planck’s code. Will try that.

mfikes16:11:36

:compiler-stats

rauh16:11:49

I benchmarked the JVM side on my project and it's roughly 20% for me locally. But I have a LOT of namespaces

mfikes16:11:08

script/test-self-parity involves a boat-load of self-host compilation. I’ll try that as well.

mfikes16:11:39

No speedup when compiling Planck (`:compiler-stats`)

mfikes17:11:08

@rauh I see no speedup when running script/test-self-parity

rauh17:11:48

@mfikes Ok thanks, but no regression either, right? For me the results: https://dev.clojure.org/jira/browse/CLJS-2424

mfikes17:11:17

Right, I get 0 failures, 0 errors with the patch.

rauh17:11:35

@mfikes Looks like it's mostly a speedup on recompile, not so much on initial compilation

rauh17:11:35

@mfikes If you want to test recompile speed you can remove all JS output files, then simply touch a single CLJS file and the entire project should recompile when you "watch" the project. That's the how I measure the recompile performance.