On Tue, Aug 11, 2009 at 5:26 PM, Andy Fingerhut<andy_finger...@alum.wustl.edu> wrote: > > 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
At that point is it possible you're just paying the price of PersistentVector for the "bodies" vector? Does it improve much if you change bodies to an array? --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---