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 4.024.021,2441606  0% 0% 0% 100%
1.2Haskell GHC 4.774.771,608789  0% 0% 0% 100%
1.3Haskell GHC #2 5.195.191,620832  0% 0% 0% 100%
2.1Erlang HiPE 8.308.305,084734  1% 100% 0% 0%
2.2Go 6g 8g #4 8.668.65700996  0% 0% 0% 100%
2.6C++ GNU g++ #4 10.3510.351,1521800  0% 0% 0% 100%
2.6C++ GNU g++ #5 10.3810.381,1521994  0% 0% 0% 100%
2.6GNU gcc #5 10.4810.485562879  0% 0% 0% 100%
2.6C++ GNU g++ #3 10.5310.521,1641845  0% 0% 0% 100%
2.6Go 6g 8g #3 10.5410.54696983  0% 0% 0% 100%
2.8GNU gcc #2 11.2711.275601663  0% 0% 0% 100%
3.1Java 6 -server #2 12.4512.4717,8761429  0% 0% 0% 100%
3.1Java 6 steady state #2 12.4912.4918,6481513  0% 0% 0% 100%
3.2Scala #2 12.9312.9419,3401171  0% 0% 0% 100%
3.3C++ GNU g++ 13.1513.151,2801798  0% 0% 0% 100%
4.2C# Mono 16.7316.726,1961409  0% 0% 0% 100%
5.0Go 6g 8g 20.1620.166921142  0% 0% 0% 100%
5.4Mozart/Oz 21.8921.884,6521090  0% 0% 0% 100%
6.5Java 6 -server 26.0226.0422,9561462  0% 1% 1% 100%
7.1Java 6 -Xint #2 28.7028.7616,2041429  0% 0% 0% 100%
11Java 6 -Xint 44.5444.5519,9201462  0% 0% 0% 100%
11GNU gcc 44.6444.646361769  0% 0% 0% 100%
13Ruby JRuby 50.5850.5857,276928  0% 0% 0% 100%
15Smalltalk VisualWorks #2 60.9260.9112,7722515  0% 0% 0% 100%
16OCaml 64.9964.991,3801279  0% 0% 0% 100%
19OCaml #2 76.7676.761,4521286  0% 0% 0% 100%
23Scala 93.7593.7934,6761234  0% 0% 0% 100%
27Java 6 -Xint #3 109.76109.7716,2921756  0% 0% 0% 100%
32Ruby MRI 130.64130.631,944928  0% 0% 0% 100%
36Python CPython #2 144.97145.063,016869  0% 0% 0% 100%
37Python 3 #2 150.30150.404,144866  0% 0% 0% 100%
56Scheme PLT 225.23225.2226,156792  0% 0% 0% 100%
79Go 6g 8g #2 5 min5 min7521170  0% 0% 0% 100%
Ada 2005 GNAT Bad Output1615
Java 6 -server #3 Bad Output1756
Java 6 -server #4 Timed Out1h 00 min1377
Java 6 -Xint #4 Timed Out1h 00 min1377
Java 6 steady state #4 Timed Out54.611464
Ruby 1.9 Failed928
missing programs
ATS No program
Clean No program
F# Mono No program
Fortran Intel No program
JavaScript TraceMonkey No program
JavaScript V8 No program
Lisaac No program
Lisp SBCL No program
Lua No program
Lua LuaJIT 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