I've just updated benchmark dependencies to reflect latest changes in ClojureScript. Keywords are little slower than before but otherwise there are no big differences.
JW On Wednesday, November 6, 2013 5:04:26 AM UTC+1, kovasb wrote: > > FYI, > > http://wagjo.github.io/benchmark-cljs/ > > has some interesting cljs perf comparisons for various datastructures, > for those who haven't seen it. > > > > On Tue, Nov 5, 2013 at 10:38 PM, kovas boguta > <kovas....@gmail.com<javascript:>> > wrote: > > I'm trying to optimize zippers for clojurescript. My benchmark is > > implementing the combinator systems from > > > > https://www.wolframscience.com/nksonline/page-102 > > > > which heavily stress both navigating and modifying the tree. > > > > A major hotspot seems to be data structure creation time, which can be > > between 10 and 200x slower than jvm. I'm using Chrome 30.0.1599.101 . > > > > Vectors: > > (time (dotimes [x 1000000] ( vector x))) > > cljs: 2175 msecs > > clj: 11.414 msecs > > > > strangely, apply is faster for cljs : > > (time (dotimes [x 1000000] (apply vector [x]))) > > cljs: 1175 msecs > > clj: 64.919 msecs > > > > into gives about the same result for cljs. > > > > Creating a datastructure literal (eg [x]) is about 5x slower in cljs > > over clj, which I would take, however in the zipper case the number of > > children can vary dynamically. > > > > Lists: > > (apply list [x]) is about 2x faster than the vector case in cljs, and > > within about 5x of the jvm speed. Unless there is a better idea, I may > > try a specialized list-oriented zipper and see how it performs. > > > > Records: > > Creation is about ~10x slower than in clj. What's weird is that > > creating hashmaps is actually marginally faster than creating records > > (however, records still have much faster field access, so I'm using a > > record-based zipper implementation) > > > > (defrecord Test [a]) > > (time (dotimes [x 1000000] (Test. x))) > > cljs: 60 msecs > > clj: 7.00 msecs > > > > Is there a trick to speed up vector and/or record creation? Should I > > look into a custom datastructure? > > > > Any ideas welcome. > > > > Thanks! > -- -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.