OUT-OF-DATE! Read http://shootout.alioth.debian.org/ |
Each chart bar shows how many times more Time or how many times more Memory one unidentified ↓ program used, compared to the benchmark program that used least Time or the program that used least Memory.
This table shows 5 measurements - CPU Time, Elapsed Time, Memory, Code and ≈ CPU Load.
Compare how much Memory the programs used - sort Memory KB. Compare how much Code the benchmark programs used - sort Code B
Column × shows how many times more each program used compared to the benchmark program that used least.
| sort | sort | sort | sort | |||
|---|---|---|---|---|---|---|
| × | Program Source Code | CPU secs | Elapsed secs | Memory KB | Code B | ≈ CPU Load |
| missing benchmark programs | ||||||
| Ada 2005 GNAT | No program | |||||
| C Cyclone | No program | |||||
| C GNU gcc | No program | |||||
| C Tiny | No program | |||||
| C# Mono | No program | |||||
| C++ GNU g++ | No program | |||||
| Clean | No program | |||||
| D Digital Mars | No program | |||||
| D GNU | No program | |||||
| Dylan Gwydion | No program | |||||
| Eiffel SmartEiffel | No program | |||||
| Erlang HiPE | No program | |||||
| Forth bigForth | No program | |||||
| Forth GNU GForth | No program | |||||
| Fortran G95 | No program | |||||
| Haskell GHC | No program | |||||
| Icon | No program | |||||
| Io | No program | |||||
| Java 6 -client | No program | |||||
| Java 6 -server | No program | |||||
| Java 6 -Xint | No program | |||||
| Java GNU gcj | No program | |||||
| JavaScript JavaScriptCore | No program | |||||
| JavaScript SpiderMonkey | No program | |||||
| Lisp SBCL | No program | |||||
| Lua | No program | |||||
| Matlab GNU Octave | No program | |||||
| Mozart/Oz | No program | |||||
| Nice | No program | |||||
| Oberon-2 OO2C | No program | |||||
| Objective-C GNU | No program | |||||
| OCaml | No program | |||||
| OCaml (bytecode) | No program | |||||
| Parrot PIR | No program | |||||
| Pascal Free Pascal | No program | |||||
| Perl | No program | |||||
| PHP | No program | |||||
| Pike | No program | |||||
| Prolog SWI | No program | |||||
| Python CPython | No program | |||||
| Python IronPython | No program | |||||
| Python Psyco | No program | |||||
| Rexx Regina | No program | |||||
| Ruby MRI | No program | |||||
| S-Lang | No program | |||||
| Scala | No program | |||||
| Scheme Bigloo | No program | |||||
| Scheme Chicken | No program | |||||
| Scheme PLT | No program | |||||
| Smalltalk GNU | No program | |||||
| SML MLton | No program | |||||
| SML SML/NJ | No program | |||||
| Tcl | No program | |||||
diff program output N = 10 with this output file to check your program is correct before contributing.
Each program should create, keep alive, and send integer values between 500 explicitly-linked threads. Programs may use kernel threads, lightweight threads, cooperative threads…
Each program should
Similar benchmarks are described in Performance Measurements of Threads in Java and Processes in Erlang, 1998; and A Benchmark Test for BCPL Style Coroutines, 2004. For some language implementations increasing the number of threads quickly results in Death by Concurrency.