1. Jérôme Berger
  2. shootout

Wiki

Clone wiki

shootout / Home

Quickstart

On Linux

  • Edit makefiles/my.linux.ini and change the value of install to point to the path where you checked out the source;
  • Run run.sh to run the benchmarks.

Note that run.sh will try to be "smart" about what it runs and will only run benchmarks for which it detects a change since the last run. You can force all benchmarks to be re-run with runall.sh.

On Windows

No idea, I haven't run the tests on windows.

Results

Test Environment

  • OS: ArchLinux, kernel 2.6.39.3;
  • CPU: AMD Athlon 64X2 3800+ (2GHz);
  • Python: 2.7.2;
  • Gcc: 4.6.1;
  • Clang: 2.9;
  • Rock: 0.9.1;
  • Nimrod: 0.8.12;
  • Benchmark: cb95cc10d4b2

Compilation options

  • Gcc: -pipe -Wall -O3;
  • Clang: -O3;
  • Rock: +-O3;
  • Nimrod: -d:release (with default configuration file).
  • Nimrod Boehm: -d:release --gc:boehm (with default configuration file).

CPU times (s)

binarytreesfannkuchfastamandelbrotnbodyregexdna
Clang2.720.321.692.502.330.44
Clang #22.89
Gcc2.200.361.572.472.280.44
Gcc #22.55
Nimrod5.822.211.482.262.590.47
Nimrod #20.71
Nimrod Boehm2.701.641.472.262.60fail
Nimrod Boehm #20.73
Ooc (Rock)4.4234.28failfailfail6.20
Python36.6631.8958.65165.70249.540.54

Notes:

  • For binarytrees, Gcc and Clang use manual memory management while Gcc #2 and Clang #2 use the Boehm garbage collector;
  • For regexdna, Nimrod and Nimrod Boehm call the low level PCRE functions directly, while Nimrod #2 and Nimrod Boehm #2 go through the higher level interface (from the standard library module re).

Source size (lines)

binarytreesfannkuchfastamandelbrotnbodyregexdna
C13610515863142126
C #2126
Nimrod566511552126111
Nimrod #261
Ooc607212460fail88
Python3854794411039

Notes:

  • Gcc and Clang uses the same source files;
  • I was unable to implement nbody in OOC, because there is no way to use scientific notation for floating-point literals!

Memory usage (KB)

binarytreesfannkuchfastamandelbrotnbodyregexdna
Clang8 8802882882883121 640
Clang #216 444
Gcc8 8802882882883121 640
Gcc #216 440
Nimrod16 724344 8403003245842 348
Nimrod #22 360
Nimrod Boehm21 564294 936908940944fail
Nimrod Boehm #23 560
Ooc (Rock)28 4121 552failfailfail8 228
Python31 8364 3844 5124 3884 5965 004

Updated