[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.