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.0GNU gcc #5 3.140.796842879  99% 99% 99% 99%
4.4C++ GNU g++ #5 13.053.471,3321994  98% 100% 89% 89%
4.5C++ GNU g++ #4 13.053.571,3281800  82% 77% 100% 100%
5.7C++ GNU g++ #3 15.574.541,3241845  71% 64% 100% 99%
8.8Haskell GHC 7.027.022,108789  0% 0% 0% 100%
9.2Java 6 steady state #4 21.427.2719,0801464  57% 50% 81% 81%
9.5Haskell GHC #2 14.837.552,728832  1% 84% 85% 0%
10Go 6g 8g #4 8.108.11836996  0% 50% 49% 0%
11C++ GNU g++ 29.248.451,4161798  72% 67% 100% 100%
11Java 6 -server #3 12.578.6441,2881756  37% 45% 15% 40%
11Java 6 -server #4 25.618.8115,9081377  55% 79% 53% 83%
13Go 6g 8g #3 10.1110.11832983  2% 0% 100% 2%
17Java 6 -server #2 40.8213.3036,1361429  61% 79% 62% 78%
17GNU gcc #2 44.6613.636641663  74% 72% 86% 85%
18Java 6 -Xint #4 43.5814.3712,5321377  62% 89% 53% 88%
18Java 6 steady state #2 46.7314.6136,7001513  64% 65% 81% 80%
19Scala #2 44.5114.7537,3841171  62% 60% 76% 75%
25Go 6g 8g 19.6619.678721142  49% 0% 0% 51%
39C# Mono 109.3830.967,5481409  82% 85% 80% 84%
46C++ GNU g++ #2 86.8336.231,4281606  58% 56% 53% 53%
46Java 6 -Xint #2 96.4836.4333,1601429  54% 66% 51% 67%
57Java 6 -server 126.2245.0585,8241462  60% 67% 53% 68%
76Smalltalk VisualWorks #2 60.0760.0622,8562515  0% 100% 0% 0%
115Scala 87.6290.93145,5321234  23% 31% 23% 17%
120Java 6 -Xint 248.2295.1994,6801462  54% 64% 52% 65%
138Erlang HiPE 198.65109.969,144734  47% 45% 30% 33%
155GNU gcc 167.00122.787401769  33% 25% 38% 31%
186Ruby JRuby 5 min147.3495,944928  45% 44% 56% 54%
199Ruby MRI 158.27158.262,656928  0% 0% 100% 0%
267Scheme PLT 211.77211.9336,364792  1% 0% 100% 0%
273Python CPython #2 286.54216.633,816869  49% 24% 28% 22%
302OCaml #2 6 min239.772,4121286  37% 33% 37% 33%
317OCaml 6 min252.012,4001279  36% 35% 30% 38%
342Go 6g 8g #2 9 min271.659201170  54% 49% 47% 47%
377Java 6 -Xint #3 7 min299.5933,2921756  33% 41% 20% 40%
Ada 2005 GNAT Bad Output1615
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