How big is the measured performance difference?

Each chart bar shows how many times more Time or how many times more Memory one unidentified ↓ chameneos-redux program used, compared to the program that used least Time or the program that used least Memory.

 chameneos-redux benchmark N=6,000,000

This table shows 5 measurements - CPU Time, Elapsed Time, Memory, Code and ~ CPU Load.

Compare how much Memory the chameneos-redux programs used - sort Memory KB. Compare how much Code the programs used - sort Code B

Column × shows how many times more each program used compared to the program that used least.

    sort sort sort sort
  ×   Program Source Code CPU secs Elapsed secs Memory KB Code B ~ CPU Load
1.0C++ GNU g++ #2 3.393.391,3961606  0% 0% 0% 100%
1.2Java 6 -server #3 3.883.9141,2801756  0% 0% 0% 99%
1.4Haskell GHC 4.724.731,884789  0% 0% 0% 100%
1.5Haskell GHC #2 5.055.061,880832  0% 0% 0% 100%
2.2Erlang HiPE 7.307.317,884734  0% 99% 1% 0%
2.4Go 6g 8g #4 8.228.22832996  0% 0% 0% 100%
2.7C++ GNU g++ #4 9.219.221,3041800  0% 0% 0% 100%
2.7GNU gcc #5 9.249.246522879  0% 0% 0% 100%
2.7C++ GNU g++ 9.279.271,4161798  0% 0% 0% 100%
2.7C++ GNU g++ #5 9.279.271,3041994  0% 0% 0% 100%
2.8C++ GNU g++ #3 9.359.341,3161845  0% 0% 0% 100%
2.9GNU gcc #2 9.879.876561663  0% 0% 0% 100%
3.0Go 6g 8g #3 10.1110.11832983  0% 0% 0% 100%
3.4Java 6 steady state #2 11.4911.4936,0281513  0% 0% 0% 100%
3.4Java 6 -server #2 11.6211.6235,1721429  0% 0% 0% 100%
3.5Scala #2 12.0112.0237,6001171  0% 0% 0% 100%
4.5C# Mono 15.1715.177,2881409  0% 0% 0% 100%
5.8Go 6g 8g 19.7419.748481142  0% 0% 0% 100%
7.0Java 6 -server 23.6223.6444,7841462  0% 0% 0% 100%
9.0Java 6 -Xint #2 30.5430.5933,1561429  0% 0% 0% 100%
13GNU gcc 42.5742.577401769  0% 0% 0% 100%
15Java 6 -Xint 49.4449.4839,1121462  1% 1% 0% 100%
16Ruby JRuby 52.8652.8995,612928  0% 1% 1% 100%
17Smalltalk VisualWorks #2 56.2756.2722,8562515  0% 0% 0% 100%
17OCaml 57.5157.512,0321279  0% 0% 0% 100%
21OCaml #2 69.7469.732,1841286  0% 0% 0% 100%
21Scala 72.2672.2985,1281234  0% 0% 0% 100%
40Python CPython #2 134.30134.393,812869  0% 0% 0% 100%
47Ruby MRI 159.12159.122,656928  1% 0% 0% 100%
63Scheme PLT 213.50213.4935,348792  0% 0% 0% 100%
84Go 6g 8g #2 285.16285.159241170  0% 1% 0% 100%
Ada 2005 GNAT Bad Output1615
Java 6 -server #4 Timed Out1h 00 min1377
Java 6 -Xint #4 Timed Out1h 00 min1377
Java 6 -Xint #3 Bad Output1756
Java 6 steady state #4 Timed Out54.611464
missing programs
ATS No program
Clean No program
F# Mono No program
Fortran Intel No program
JavaScript TraceMonkey No program
JavaScript V8 No program
Lisp SBCL No program
Lua No program
Pascal Free Pascal No program
Perl No program
PHP No program

 chameneos-redux benchmark : Symmetrical thread rendezvous requests

ndiff program output N = 600 with this output file to check your program output has the correct format before contributing.

The text-part and spelled-out numbers in the program output should match the expected output exactly. Thread scheduling may cause small differences in the other numbers, so program output is checked with ndiff -fields 2-10

Each program should

The chameneos benchmark is an adaptation of "Chameneos, a Concurrency Game for Java, Ada and Others" 100KB pdf (which includes example implementations in Java, Ada and C).

Programs may use kernel threads, lightweight threads; but coroutines, cooperative threads and other programs with custom schedulers will be listed as interesting alternative implementations. Briefly say what concurrency technique is used in the program header comment.

Revised BSD license