Ok, for anyone following my adventures optimizing clj-uuid, I've gotten another substantial win. Check it out:
#'uuid/v1: 443 nanoseconds #'java.util.UUID/randomUUID: 2000 nanoseconds ====================================================================== user> (criterium/bench (uuid/v1)) Evaluation count: 139356300 in 60 samples of 2322605 calls. Execution time mean: 443.707611 ns user> (criterium/bench (java.util.UUID/randomUUID)) Evaluation count : 30850980 in 60 samples of 514183 calls. Execution time mean : 2.012861 µs Also, the test suite has much greater coverage with individual tests for each v1, v,3, v4, v5 uuid version. And, finally, there more interesting notes about some of the esoteric details of the node-id representation and the way it is calculated to disambiguate it from any legal 802 MAC hardware address. And more.... http://danlentz.github.io/clj-uuid On Tuesday, February 24, 2015 at 7:26:30 AM UTC-5, danl...@gmail.com wrote: > > Lief you have a really valid point here. I was definitely aware that > there are only about a dozen actual masks that get used, > so I had been looking for a good way to unroll that computation. So, you > definitely have showed me something useful > with your macro approach. I think doing that though is something I will > want to revisit a little bit down the line -- ldb and dpb > Have proven themselves useful enough to try to first look at ways to > optimize them for the "general use" case. The > .countTrailingZeros code seems to take a much more efficient approach to > "mask-offset" and IIRC may completely eliminate > "mask-width". I'm going to play with it today and I'll report back any > interesting results. > > This group is really a fantastic resource. You guys are awesome. > > -- 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/d/optout.