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  0% 0% 1% 100%
1.0GNU gcc #4 3.793.791,124541  0% 0% 0% 100%
1.0Ada 2005 GNAT #2 3.783.792,1881254  0% 0% 1% 100%
1.0C++ GNU g++ #3 3.793.791,696682  0% 0% 1% 100%
1.0ATS #2 3.803.801,0601008  0% 0% 1% 100%
1.1Scheme PLT #4 4.214.2116,9761131  0% 0% 0% 100%
1.4Lua #7 5.145.141,728477  0% 0% 0% 100%
1.5Lua #5 5.645.651,900479  0% 0% 0% 100%
1.6ATS 5.985.981,200710  0% 0% 0% 100%
1.8Pascal Free Pascal #2 6.656.651,112785  0% 0% 0% 100%
1.8OCaml 6.706.703,992560  0% 0% 0% 100%
1.8Java 6 steady state #2 6.766.7637,188983  0% 0% 0% 100%
1.8C# Mono #3 6.786.796,4161026  0% 0% 0% 100%
1.9Java 6 -server #2 6.936.9618,020938  0% 0% 0% 100%
1.9Java 6 steady state #4 7.007.0054,2121836  0% 0% 0% 100%
1.9Lua 7.007.001,840522  0% 0% 0% 100%
1.9Java 6 -Xint #2 6.997.0113,448938  0% 0% 0% 100%
1.9Python CPython #3 7.177.176,504476  0% 0% 0% 100%
2.0PHP #2 7.407.4014,388537  0% 0% 0% 100%
2.0Perl #2 7.477.483,884385  0% 0% 0% 100%
2.1Java 6 -server #4 7.707.7148,8601816  0% 0% 0% 100%
3.1Scala #2 11.6411.67623,052632  0% 0% 0% 100%
3.5OCaml #2 12.9312.933,232510  0% 0% 1% 100%
4.8Erlang HiPE 17.8017.8112,364559  0% 100% 0% 0%
5.1Perl 19.0919.095,548452  0% 0% 0% 100%
5.1Lisp SBCL #2 19.0919.0961,584645  0% 0% 0% 100%
5.4Java 6 -Xint #4 19.8719.8829,2121816  4% 10% 3% 100%
6.3Go 6g 8g 23.3023.307,864594  0% 0% 0% 100%
7.4Ruby MRI 27.6127.6114,216518  0% 0% 0% 100%
7.7Scheme PLT #3 28.6328.6322,900454  0% 0% 0% 100%
9.5Java 6 -server 35.2435.28141,636800  0% 0% 0% 100%
11Ruby JRuby 41.9241.93147,644518  0% 0% 0% 100%
13Pascal Free Pascal 47.1447.139283042  0% 0% 0% 100%
13C# Mono #2 49.3949.397,744856  0% 0% 0% 100%
18Smalltalk VisualWorks 68.0368.0337,732899  0% 0% 0% 100%
20Python CPython 73.6573.654,400407  0% 0% 0% 100%
23F# Mono 87.0887.0811,828578  0% 0% 0% 100%
43Ada 2005 GNAT 160.43160.432,3521143  0% 0% 0% 100%
56Lua #2 208.03208.012,3401005  0% 0% 1% 100%
67JavaScript V8 248.17248.1638,792609  0% 0% 0% 100%
113Java 6 -Xint 7 min7 min33,384800  0% 0% 0% 100%
173PHP 10 min10 min7,324736  0% 0% 0% 100%
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,448609
34Lua #4 126.09126.081,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