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.0Haskell GHC #3 3.713.715,440331  100% 0% 0% 0%
1.0GNU gcc #4 3.793.791,132541  99% 0% 0% 0%
1.0C++ GNU g++ #3 3.793.791,696682  0% 100% 0% 0%
1.0Ada 2005 GNAT #2 3.793.792,1921254  0% 100% 0% 0%
1.0ATS #2 3.803.801,1841008  100% 0% 1% 0%
1.1Scheme PLT #4 4.224.2216,9721131  0% 0% 100% 0%
1.4Lua #7 5.145.151,728477  0% 0% 100% 0%
1.5Java 6 steady state #4 13.495.4054,2361836  50% 57% 67% 50%
1.5Lua #5 5.645.651,900479  0% 1% 0% 100%
1.6Java 6 -server #4 14.155.7950,5081816  49% 60% 52% 56%
1.6ATS 5.975.981,200710  0% 0% 100% 0%
1.6Java 6 -Xint #4 17.686.0328,9161816  76% 59% 64% 54%
1.8Pascal Free Pascal #2 6.656.651,108785  0% 0% 100% 0%
1.8OCaml 6.706.704,056560  0% 100% 0% 0%
1.8Java 6 steady state #2 6.766.7539,960983  0% 0% 0% 100%
1.8C# Mono #3 6.786.786,4721026  100% 0% 0% 0%
1.9Java 6 -server #2 6.986.9318,432938  88% 12% 0% 0%
1.9Lua 7.007.001,840522  0% 0% 100% 0%
1.9Java 6 -Xint #2 6.997.0113,584938  0% 100% 0% 0%
1.9Python CPython #3 7.167.176,508476  100% 0% 0% 0%
2.0PHP #2 7.367.3615,860537  0% 0% 100% 0%
2.0Perl #2 7.467.463,868385  100% 0% 0% 0%
2.9Scala #2 12.8410.87622,340632  7% 9% 93% 8%
3.5OCaml #2 12.9312.943,232510  0% 100% 0% 0%
4.8Erlang HiPE 17.8917.8913,540559  0% 0% 100% 0%
5.1Perl 19.0819.085,496452  0% 0% 0% 100%
5.1Lisp SBCL #2 19.1019.1061,592645  100% 0% 0% 0%
6.3Go 6g 8g 23.4123.417,868594  0% 0% 0% 100%
7.4Ruby MRI 27.6027.6014,324518  0% 0% 100% 0%
7.7Scheme PLT #3 28.6928.6923,244454  0% 0% 100% 0%
9.5Java 6 -server 35.6735.25144,356800  0% 100% 0% 1%
11Ruby JRuby 42.4140.19235,772518  2% 1% 99% 4%
13Pascal Free Pascal 47.1447.159243042  0% 0% 100% 0%
14C# Mono #2 57.4852.267,740856  91% 5% 7% 2%
18Smalltalk VisualWorks 66.1566.1737,740899  0% 0% 0% 100%
20Python CPython 73.7673.754,392407  100% 0% 0% 0%
24F# Mono 88.5588.5511,812578  99% 0% 0% 0%
43Ada 2005 GNAT 160.44160.432,3481143  0% 0% 0% 100%
56Lua #2 207.34207.342,3401005  0% 0% 0% 100%
67JavaScript V8 247.73247.7338,796609  0% 0% 100% 0%
113Java 6 -Xint 7 min7 min33,392800  0% 0% 79% 20%
172PHP 10 min10 min6,944736  0% 100% 0% 0%
Clean #2 Failed563
Clean Failed530
Fortran Intel Timed Out1h 00 min1768
JavaScript TraceMonkey Failed609
Ruby JRuby #2 Failed653
Ruby MRI #2 Failed653
Smalltalk VisualWorks #3 Bad Output652
interesting alternative programs
0.0Python CPython #4 0.060.06?257
0.2Lua #8 0.860.861,452609
34Lua #4 128.00128.031,948734

 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