Fork me on GitHub
#cljs-dev
<
2015-12-03
>
kamn00:12:27

@dnolen @nullptr: Thanks for the insight.

spinningtopsofdoom21:12:24

@martinklepsch and @nberger I've gotten the Collection Check CLJS port up and running. Lean HAMT now passes for 10000 Collection Check tests! Thanks for all your work.

spinningtopsofdoom21:12:03

@dnolen: I've gotten the improved iteration up for Lean HAMT, it's 25% - 50% faster for v8 and 100% slower in SpiderMonkey.

dnolen21:12:28

~100% slower seems strange for SpiderMonkey

dnolen21:12:34

also did you try JavaScriptCore?

dnolen21:12:29

and really we care mostly about nightlies when benchmarking

dnolen21:12:42

esp. since Chrome & FF are evergreen

dnolen21:12:03

and latest Safari already smokes

spinningtopsofdoom21:12:03

Nope, I've had trouble getting it up and running on linux. You can benchmark it by running script/bench.sh. It works the same way that the CLJS benchmark suite does

spinningtopsofdoom21:12:51

I got the lastest SpiderMonkey today (using the instructions from the CLJS wiki)

dnolen21:12:03

@spinningtopsofdoom: oh are you not benchmarking with advanced?

dnolen21:12:24

:none results will be very misleading

spinningtopsofdoom21:12:19

oh you mean the complied js file, I'll put that up

dnolen21:12:54

no I mean in your project.clj I don’t see you creating an :advanced build

dnolen21:12:23

oh I see because you are using build scripts

spinningtopsofdoom21:12:41

Yep, in script/profile.clj

dnolen21:12:08

trying now

dnolen21:12:37

@spinningtopsofdoom: how do I install collection-check?

dnolen21:12:44

I’m assuming I need a fork or something?

spinningtopsofdoom21:12:07

Build instructions are in the README

spinningtopsofdoom21:12:52

I should put that in a test profile, sorry got excited simple_smile

martinklepsch21:12:31

@spinningtopsofdoom: did you get the minimal case reporting to work w/ my fork?

martinklepsch21:12:26

@spinningtopsofdoom: oh and the changes to test.chuck have been merged so pulling that branch isn’t necessary anymore

spinningtopsofdoom21:12:15

@dnolen: I removed the custom collection check deps to a profile

spinningtopsofdoom21:12:28

You should be able to build without them now

spinningtopsofdoom21:12:05

@martinklepsch: Yep it looks like it needed to be wrapped in a deftest to work correctly AFAICT

martinklepsch21:12:00

@spinningtopsofdoom: ok. If wrapping in deftest is required that’s most likely a more general issue...

spinningtopsofdoom21:12:09

@martinklepsch: You can play around with it lein with-profile test doo node node-test I may be way off base as far as the reporting goes.

dnolen21:12:12

ok I gave it shot the results across all the JS engines on my machine are inconclusive

dnolen21:12:22

it’s definitely the case the that V8 iteration is faster

dnolen21:12:35

but for the other engines the differences for iteration is the negligible

dnolen21:12:48

(I have an older SpiderMonkey which doesn’t show the slow down you see)

dnolen21:12:23

however other ops appear to be slightly faster for lean-map under SpiderMonkey

dnolen21:12:15

I think another useful step would be to graph these results so it’s easier to consume

dnolen21:12:25

upgrading to FF nightly I definitely see some kind of perf regression

dnolen21:12:43

but probably not worth drawing any conclusions from that

spinningtopsofdoom21:12:20

I agree for the graph part, the text benchmarks were good enough to show me if I was way off base. Thanks for confirming the benchmarks I was seeing

dnolen22:12:38

the code looks pretty clean perf wise from a fairly quick review

dnolen22:12:00

@spinningtopsofdoom: have you tried using the Chrome profiler on the :simple optimized benchmark?

spinningtopsofdoom22:12:27

@dnolen yep I've only done high level perf overviews with the profiler. I haven't seen any obvious issues when using js/console.profile.

dnolen22:12:13

@spinningtopsofdoom: can you paste an image of a profile run you’ve done?

dnolen22:12:30

specifically of the benchmark script

dnolen22:12:38

would like to see if I spot something obvious

spinningtopsofdoom22:12:07

Not right now, tomorrow I have 20% time I can get that too you. You can try script/profile to build out the profile js I'm using

dnolen22:12:15

k no rush, thanks for digging into this simple_smile