x64 Ubuntu : Intel® Q6600® one core |
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.
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.0 | Haskell GHC #3 | 3.71 | 3.71 | 5,440 | 331 | 0% 0% 1% 100% |
| 1.0 | C GNU gcc #4 | 3.79 | 3.79 | 1,124 | 541 | 0% 0% 0% 100% |
| 1.0 | Ada 2005 GNAT #2 | 3.78 | 3.79 | 2,188 | 1254 | 0% 0% 1% 100% |
| 1.0 | C++ GNU g++ #3 | 3.79 | 3.79 | 1,696 | 682 | 0% 0% 1% 100% |
| 1.0 | ATS #2 | 3.80 | 3.80 | 1,060 | 1008 | 0% 0% 1% 100% |
| 1.1 | Scheme PLT #4 | 4.21 | 4.21 | 16,976 | 1131 | 0% 0% 0% 100% |
| 1.4 | Lua #7 | 5.14 | 5.14 | 1,728 | 477 | 0% 0% 0% 100% |
| 1.5 | Lua #5 | 5.64 | 5.65 | 1,900 | 479 | 0% 0% 0% 100% |
| 1.6 | ATS | 5.98 | 5.98 | 1,200 | 710 | 0% 0% 0% 100% |
| 1.8 | Pascal Free Pascal #2 | 6.65 | 6.65 | 1,112 | 785 | 0% 0% 0% 100% |
| 1.8 | OCaml | 6.70 | 6.70 | 3,992 | 560 | 0% 0% 0% 100% |
| 1.8 | Java 6 steady state #2 | 6.76 | 6.76 | 37,188 | 983 | 0% 0% 0% 100% |
| 1.8 | C# Mono #3 | 6.78 | 6.79 | 6,416 | 1026 | 0% 0% 0% 100% |
| 1.9 | Java 6 -server #2 | 6.93 | 6.96 | 18,020 | 938 | 0% 0% 0% 100% |
| 1.9 | Java 6 steady state #4 | 7.00 | 7.00 | 54,212 | 1836 | 0% 0% 0% 100% |
| 1.9 | Lua | 7.00 | 7.00 | 1,840 | 522 | 0% 0% 0% 100% |
| 1.9 | Java 6 -Xint #2 | 6.99 | 7.01 | 13,448 | 938 | 0% 0% 0% 100% |
| 1.9 | Python CPython #3 | 7.17 | 7.17 | 6,504 | 476 | 0% 0% 0% 100% |
| 2.0 | PHP #2 | 7.40 | 7.40 | 14,388 | 537 | 0% 0% 0% 100% |
| 2.0 | Perl #2 | 7.47 | 7.48 | 3,884 | 385 | 0% 0% 0% 100% |
| 2.1 | Java 6 -server #4 | 7.70 | 7.71 | 48,860 | 1816 | 0% 0% 0% 100% |
| 3.1 | Scala #2 | 11.64 | 11.67 | 623,052 | 632 | 0% 0% 0% 100% |
| 3.5 | OCaml #2 | 12.93 | 12.93 | 3,232 | 510 | 0% 0% 1% 100% |
| 4.8 | Erlang HiPE | 17.80 | 17.81 | 12,364 | 559 | 0% 100% 0% 0% |
| 5.1 | Perl | 19.09 | 19.09 | 5,548 | 452 | 0% 0% 0% 100% |
| 5.1 | Lisp SBCL #2 | 19.09 | 19.09 | 61,584 | 645 | 0% 0% 0% 100% |
| 5.4 | Java 6 -Xint #4 | 19.87 | 19.88 | 29,212 | 1816 | 4% 10% 3% 100% |
| 6.3 | Go 6g 8g | 23.30 | 23.30 | 7,864 | 594 | 0% 0% 0% 100% |
| 7.4 | Ruby MRI | 27.61 | 27.61 | 14,216 | 518 | 0% 0% 0% 100% |
| 7.7 | Scheme PLT #3 | 28.63 | 28.63 | 22,900 | 454 | 0% 0% 0% 100% |
| 9.5 | Java 6 -server | 35.24 | 35.28 | 141,636 | 800 | 0% 0% 0% 100% |
| 11 | Ruby JRuby | 41.92 | 41.93 | 147,644 | 518 | 0% 0% 0% 100% |
| 13 | Pascal Free Pascal | 47.14 | 47.13 | 928 | 3042 | 0% 0% 0% 100% |
| 13 | C# Mono #2 | 49.39 | 49.39 | 7,744 | 856 | 0% 0% 0% 100% |
| 18 | Smalltalk VisualWorks | 68.03 | 68.03 | 37,732 | 899 | 0% 0% 0% 100% |
| 20 | Python CPython | 73.65 | 73.65 | 4,400 | 407 | 0% 0% 0% 100% |
| 23 | F# Mono | 87.08 | 87.08 | 11,828 | 578 | 0% 0% 0% 100% |
| 43 | Ada 2005 GNAT | 160.43 | 160.43 | 2,352 | 1143 | 0% 0% 0% 100% |
| 56 | Lua #2 | 208.03 | 208.01 | 2,340 | 1005 | 0% 0% 1% 100% |
| 67 | JavaScript V8 | 248.17 | 248.16 | 38,792 | 609 | 0% 0% 0% 100% |
| 113 | Java 6 -Xint | 7 min | 7 min | 33,384 | 800 | 0% 0% 0% 100% |
| 173 | PHP | 10 min | 10 min | 7,324 | 736 | 0% 0% 0% 100% |
| Clean #2 | Failed | 563 | ||||
| Clean | Failed | 530 | ||||
| Fortran Intel | Timed Out | 1h 00 min | 1768 | |||
| JavaScript TraceMonkey | Failed | 609 | ||||
| Ruby JRuby #2 | Failed | 653 | ||||
| Ruby MRI #2 | Failed | 653 | ||||
| Smalltalk VisualWorks #3 | Bad Output | 652 | ||||
| interesting alternative programs | ||||||
| 0.0 | Python CPython #4 | 0.06 | 0.06 | ? | 257 | |
| 0.2 | Lua #8 | 0.86 | 0.86 | 1,448 | 609 | |
| 34 | Lua #4 | 126.09 | 126.08 | 1,948 | 734 | |
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