In case it matters to anyone, my intent in creating these Clojure programs to compare their speed to others isn't to try to rip into Clojure, or start arguments. It is for me to get my feet wet with Clojure, and perhaps produce some examples that others can learn from on what performs well in Clojure and what doesn't. So far, it has even had the unexpected benefit of providing a ready-made test for Christophe Grand to do a quick test of some improvements to his implement of transients for Clojure maps. Cool beans.
Also, while it may appear I do benchmarks for a living, I don't :-) I'd personally like to know before investing more time with Clojure what kind of performance I can attain with it. Most of my commercial software development to date has been in assembly and C, and the expressiveness of Lisp is a breath of fresh air that helps me remember why I love programming. Clojure's concurrency features, and keeping around the power of Lisp macros, are a huge pull for me. But there are those times that you want performance, and I'm curious how much I can get out of Clojure code, vs. implementing certain inner loops in Java, C, or what-have-you. Just because some part of your code might lead you, for desire of better performance, to implement it by hand in Java or C doesn't deter me from Clojure at all -- but I'd like to know how likely that is. OK, with that said, I've now got the n-body benchmark within 3.2 times Java's run time on the same problem. The only change from my previous version that sped things up was to replace 3-operand arithmetic operations with 2-operand operations. Currently, this enables Clojure to use primitive ops, instead of something slower. Updated results here: http://github.com/jafingerhut/clojure-benchmarks/blob/0f7fdd358086cb95c898d7c2656215408a8d0689/RESULTS As always, suggestions or improved versions are welcome. Thanks, Andy --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---