doseq & for macros should support chunked seqs
Activity

Michał Marczyk April 26, 2013 at 10:55 PM
David Nolen April 26, 2013 at 10:45 PM
Fixed, http://github.com/clojure/clojurescript/commit/44389e2f233ccc26ed5a1c75b1e043054e61b586
fixing chunked-seq? made the perf difference quite small for regular seqs. We can take futher enhancement in other tickets/patches.
David Nolen April 25, 2013 at 1:46 PM
Reviewing the patch some more, it might be worth inlining chunk-append and chunk via macros. Also in the chunked seq branch, since we've hinted the result of chunk-first as ^not-native we should make sure to just call the protocols fns directly where possible.
David Nolen April 25, 2013 at 1:37 PM
Interesting! I'd be happy to drop the bitmask stuff as it complicates the implementation, though looking at those benchmarks it doesn't appear that it would make much of a difference. It does seems that Safari 6 does greatly prefer the bitmask approach. We'd have to do quite a bit more testing before deciding of course.

Michał Marczyk April 25, 2013 at 1:20 PM
Ah, good idea, I'll give it a try.
Incidentally, about making satisfies?
faster: I had a look at the jsPerf benchmark linked to from CLJS-246 – here's a direct link: http://jsperf.com/direct-vs-chain/8 – and it seems like JS engine perf profiles may be shifting. In Chrome 24 "property" and "property many interfaces" are about equally fast and somewhat faster than "bit" & "bit m.i.". Chrome 21 saw no difference, recent versions of Firefox seem to be similar to Chrome w.r.t. relative results, Opera seems to prefer bit, but only slightly, Safari has a slightly stronger preference for bit than that.
Details
Details
Assignee

Reporter
Priority

This is fantastic news, thanks!