Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Benchmark and Regression Suite for Clojure

branch: fannkuch-redux

This branch is 1 commit ahead and 52 commits behind master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 script
Octocat-spinner-32 src
Octocat-spinner-32 .gitignore
Octocat-spinner-32 README.markdown
Octocat-spinner-32 epl-v10.html initial commit October 26, 2010
Octocat-spinner-32 pom.xml
README.markdown

Benchmark (and regression) suite for Clojure Copyright (c) Rich Hickey.

License and CA same as Clojure. See epl-v10.html at the root of the project for details.

Getting Started

Requirements

Add the following to your ~/.m2/settings.xml file

<settings>
    <activeProfiles>
        <activeProfile>clojure-dev</activeProfile>
    </activeProfiles>

    <profiles>
        <profile>
            <id>clojure-dev</id>
            <activation> <activeByDefault>false</activeByDefault> </activation>
            <repositories>
              <repository>
                <id>clojars</id>
                <url>http://clojars.org/repo/</url>
              </repository>
            </repositories>
        </profile>
        ...
    </profiles>
    ...
</settings>

Building

git clone git@github.com:clojure/test.benchmark.git
cd test.benchmark
mvn test

Misc

# starts a swank server
mvn clojure:swank

Running a benchmark (e.g. alioth.thread-ring)

script/run alioth.thread-ring 1000

Contributing

There are a number of completed benchmarks, but there is a lot more left to do. Andy Fingerhut has a suit of benchmarks tailored for Clojure 1.2 and need updated or redone for Clojure 1.3 (https://github.com/jafingerhut/clojure-benchmarks).

A good general approach is to examine the fastest alioth implementations, usually Java or C, and write a Clojure port. Idiomatic Clojure typically shows poorly in the benchmarks. Liberal use of primitive arrays, type hinting, and iteration apply.

Long term goal is a performance regression test suit ...

Alioth Benchmark site is here: http://shootout.alioth.debian.org/

Work on the benchmarks is tracked here: http://dev.clojure.org/jira/browse/TBENCH

Something went wrong with that request. Please try again.