[benchmarks main page] [whole program benchmarks] [expression benchmarks] [Clojure version history] [hardware and software used]
Clojure benchmarks
The performance measurements linked below are for Clojure on Java,
versions 1.2.0 and later. All of these programs and the scripts
used to measure them are available in the clojure-benchmarks Github project. For similar measurements of ClojureScript, see the cljs-bench project on Github and the measurement results here.
The
run times have been measured across many different
Clojure versions. One possible use of these results is
identifying performance improvements or regressions as changes are made
to the implementation of Clojure. See the table of Clojure versions for some details about the versions used, and why some were left out.
There are two sets of results presented here.
Expression benchmarks
The expression benchmarks
measure the run time of
individual Clojure expressions. More details about the
measurements are available on that page. Most of these
expressions are
identical to ones measured in the cljs-bench project for ClojureScript.
Whole program benchmarks
Whole program benchmark results are NOT READY YET. An announcement will be made on the Clojure Google group when they are.
The whole program benchmarks
measure the run time of Clojure programs from the beginning until the
end, i.e. from the time the "java" command is invoked to begin the JVM,
until the Clojure program is finished and the JVM process exits.
Most of the programs in this set solve problems on the Computer Language Benchmarks Game web site, where programs written in many languages are measured in this way (direct link
to some Clojure vs. Java run time comparisons). One program in
this set is not on that web site: a "Hello, world!" program intended to
measure the startup time of the JVM and Clojure.