How big is the measured performance difference?

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

 pidigits benchmark N=10,000

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

Compare how much Memory the pidigits 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 #4 2.712.711,008541  0% 0% 0% 100%
1.0C++ GNU g++ #3 2.712.711,596682  0% 0% 1% 100%
1.3ATS #2 3.483.471,0761008  0% 0% 0% 100%
1.4Ada 2005 GNAT #2 3.753.751,8521254  0% 0% 0% 100%
1.4Haskell GHC #3 3.783.785,192331  0% 0% 1% 100%
1.4Lua LuaJIT #5 3.833.841,572479  0% 0% 0% 100%
1.4Lua #5 3.873.871,776479  0% 0% 0% 100%
1.8ATS 4.954.951,200710  0% 0% 0% 100%
2.0C# Mono #3 5.305.315,6721026  0% 0% 0% 100%
2.0Java 6 steady state #2 5.315.3131,868983  0% 0% 1% 100%
2.0Lua LuaJIT 5.335.331,552522  0% 0% 0% 100%
2.0Lua 5.385.381,656522  0% 0% 0% 100%
2.0Java 6 -server #2 5.475.4714,828938  1% 3% 0% 100%
2.0Lua LuaJIT #7 5.475.471,424477  0% 0% 0% 100%
2.0Lua #7 5.515.511,564477  0% 0% 0% 100%
2.1Java 6 -Xint #2 5.525.5611,584938  0% 0% 0% 99%
2.1Scheme PLT #4 5.585.5812,3081131  0% 0% 0% 100%
2.4Java 6 steady state #4 6.406.4028,3041836  0% 0% 0% 100%
2.4Pascal Free Pascal #2 6.576.571,060785  0% 0% 0% 100%
2.4Ada 2005 GNAT 6.596.591,9721143  0% 0% 0% 100%
2.4OCaml 6.636.632,744560  0% 0% 0% 100%
2.6Perl #2 7.047.053,284385  0% 0% 0% 100%
2.6Java 6 -server #4 7.117.1327,1881816  0% 0% 0% 100%
2.7Python CPython #3 7.407.405,528476  0% 0% 0% 100%
2.8PHP #2 7.637.638,564537  0% 0% 0% 100%
5.1Clean #2 13.7113.712,852563  0% 0% 0% 100%
6.7Scala #2 18.0718.09382,336632  0% 0% 0% 100%
7.0Java 6 -Xint #4 18.8218.8516,1561816  0% 0% 0% 100%
7.0Perl 18.9918.994,264452  0% 0% 0% 100%
7.5Erlang HiPE 20.4120.4110,108559  0% 0% 100% 0%
10Mozart/Oz 28.2028.208,532547  0% 0% 0% 100%
12Lisp SBCL #2 33.6333.6329,076645  0% 0% 0% 100%
13Python 3 36.5736.574,620437  0% 0% 0% 100%
14Pascal Free Pascal 38.9738.978683042  0% 0% 0% 100%
15Lua LuaJIT #2 41.1541.151,6241005  0% 0% 0% 100%
16Go 6g 8g 43.2943.297,696594  0% 0% 0% 100%
17Scheme PLT #3 46.1946.1917,064454  0% 0% 0% 100%
20Ruby MRI 53.8453.8413,924518  0% 0% 0% 100%
21Smalltalk VisualWorks 56.8456.8432,936899  0% 0% 0% 100%
22Java 6 -server 60.6660.6958,612800  0% 0% 0% 100%
23Python CPython 61.4361.433,592407  0% 0% 0% 100%
25C# Mono #2 68.4468.447,008856  0% 0% 0% 100%
25Ruby JRuby 69.0469.0591,068518  0% 0% 0% 100%
27Ruby 1.9 73.2573.2513,156518  0% 0% 0% 100%
46F# Mono 124.31124.3110,296578  0% 0% 0% 100%
87JavaScript V8 235.04235.0421,172609  0% 0% 0% 100%
93Lua #2 253.20253.191,9321005  0% 0% 0% 100%
156Java 6 -Xint 7 min7 min18,452800  0% 0% 0% 100%
267PHP 12 min12 min6,048736  0% 0% 0% 100%
1,586JavaScript TraceMonkey 1h 11 min1h 11 min61,840609  0% 0% 0% 100%
Clean Bad Output530
Fortran Intel Failed1768
Lisaac Make Error928
OCaml #2 Make Error510
Python 3 #3 Failed512
Ruby 1.9 #2 Failed653
Ruby JRuby #2 Failed653
Ruby MRI #2 Failed653
Smalltalk VisualWorks #3 Failed652
interesting alternative programs
 Python 3 #4 Failed  263
0.0Python CPython #4 0.050.05?257
0.4Lua LuaJIT #8 0.990.991,296609
0.4Lua #8 1.031.031,428609
7.4Lua LuaJIT #4 20.1020.101,400734
56Lua #4 152.03152.031,544734

 pidigits benchmark : Streaming arbitrary-precision arithmetic

diff program output N = 27 with this output file to check your program is correct before contributing.

Each program should use the same step-by-step spigot algorithm to calculate digits of Pi.

Each program should

Programs should adapt the step-by-step algorithm given on pages 4,6 & 7 of Unbounded Spigot Algorithms for the Digits of Pi (156KB pdf). (Not the deliberately obscure version given on page 2.)(Not the Rabinowitz-Wagon algorithm.)

In addition to language specific multiprecision arithmetic, we will accept programs that use GMP.

For more information see Eric W. Weisstein, "Pi Digits." From MathWorld--A Wolfram Web Resource.
http://mathworld.wolfram.com/PiDigits.html

Revised BSD license