3 ms·
What is Clojure performance like? I checked with http://shootout.alioth.debian.org http://shootout.alioth.debian.org and haven't found it there. We're doing som
by rclaycoke 16y ago
What is Clojure performance like? I checked with http://shootout.alioth.debian.org http://shootout.alioth.debian.org and haven't found it there. We're doing some lightweight geometrical computations like figure intersections, etc (queued, not real time) and we built them in JRuby just for fun (JVM is a requirement here) so I'm wondering how would Clojure perform there.
I'm asking here because I don't know a bit of Lisp so I can't just quickly code a benchmark. Thanks!!
- acangiano 16y agoI tried to convince Isaac to include Clojure in the benchmarks. He will probably include it once Clojure 1.2 (which has implications for performance) is released, provided that all the benchmarks are ready. Generally speaking, I found the following to be true: Java < Scala < Clojure < ... < JRuby. Clojure is relatively fast. It really depends on the program at hand, but in my experience, having to REALLY generalize, it's at least an order of magnitude faster than Ruby/JRuby.
- technomancy 16y agoSimplistic idiomatic Clojure is much faster than JRuby, but often a bit slower than Java and Scala depending on how much you rely on reflection. However, if you push it, Clojure can be as fast as anything else on the JVM; it's just a matter of how much time you spend profiling and optimizing. In many cases you can output the exact same bytecode in Clojure that you'd get from a several-times-more-verbose Java program. An extreme example: http://meshy.org/2009/12/13/widefinder-2-with-clojure.html http://meshy.org/2009/12/13/widefinder-2-with-clojure.html
- tl 16y ago$ time echo '(println "Hello, world!")' | clojure Clojure 1.0.0- user=> Hello, world! nil user=> real 0m2.756s user 0m1.040s sys 0m0.140s $ time echo 'print "Hello, world!"' | python Hello, world! real 0m0.018s user 0m0.000s sys 0m0.010s Beware the horrible startup time for small programs.