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
-~----------~----~----~----~------~----~------~--~---

Reply via email to