The Computer Language
25.02 Benchmarks Game

pidigits

Always look at the source code.

(Lumpers and Splitters.)

Some of these programs are single-thread and some are multi-thread: compare "secs" and "cpu secs". Some of these programs are un-optimised and some are heavily optimised: sort-by "gz" source code size.

Some of these programs are "naked ffi" and some put that in a library. Some of these programs are high-level and some are hand-written vector instructions.

Always look at the source code.

  * possible hand-written vector instructions or "unsafe" or naked ffi
 
× source secs mem gz cpu secs
1.0 Free Pascal 14.70 1,303 3068 14.70
2.5 * Free Pascal #3 0.75 3,195 536 0.74
2.6 * Free Pascal #2 4.49 3,437 834 4.48
2.9 C gcc 0.75 3,727 459 0.74
3.1 C gcc #2 0.74 4,006 422 0.73
3.1 Rust #4 0.71 4,055 804 0.71
3.3 * Rust 0.75 4,243 1426 0.74
3.4 * Rust #2 0.75 4,387 1312 0.74
3.5 * Rust #3 0.75 4,510 1373 0.75
4.8 * C++g++ #5 0.73 6,300 804 0.73
4.9 * Go #4 0.82 6,402 689 0.83
5.0 C++ g++ #4 0.72 6,496 521 0.71
5.1 Intel Fortran #4 0.74 6,590 987 0.74
5.3 * Go #3 1.17 6,885 610 1.19
5.7 * Ada 2012 GNAT #2 0.75 7,373 1137 0.74
5.8 Go 1.15 7,533 715 1.17
5.9 * Ada 2012 GNAT 4.49 7,631 1163 4.49
6.0 Go #2 1.76 7,823 740 1.80
6.1 * C# naot #6 0.75 7,905 1182 0.74
6.2 * C# naot #4 4.54 8,053 1135 4.53
6.5 * C# naot #5 99.09 8,466 990 99.06
7.6 OCaml #5 2.77 9,834 465 2.76
8.1 Go #7 5.00 10,527 702 5.62
8.2 Go #6 2.47 10,703 727 2.48
8.9 * Chapel #4 0.80 11,600 515 0.77
9.0 Chapel #2 0.79 11,690 423 0.77
9.0 C# naot #7 11.42 11,723 579 7.67
9.8 Python 3 #4 4.63 12,718 348 4.59
11 * Swift #2 0.76 14,459 606 0.75
12 * Haskell GHC #5 98.98 15,741 934 99.13
13 Perl 13.47 16,441 471 13.44
13 PHP #5 1.01 17,302 405 0.98
13 PHP #4 1.02 17,355 396 0.99
13 PHP #3 1.03 17,367 510 1.00
14 PHP #2 1.51 17,756 552 1.48
14 PHP 102.79 18,395 756 102.73
14 Dart aot #3 3.23 18,416 495 3.27
14 Dart aot #2 2.86 18,436 496 2.90
15 * Python 3 #3 1.35 20,009 573 1.28
17 Haskell GHC #4 1.70 22,778 355 1.78
17 Haskell GHC #2 2.09 22,790 592 2.17
18 Haskell GHC #3 2.07 22,929 387 2.16
18 Haskell GHC #6 1.49 22,946 368 1.57
18 Haskell GHC 2.08 22,962 466 2.18
31 * F# #6 0.84 40,571 917 0.83
32 * F# #4 1.32 41,902 887 1.33
41 Ruby 17.94 53,740 524 17.90
55 Node.js #4 1.15 71,688 487 1.16
60 Erlang #3 3.16 78,606 568 4.15
64 Erlang #2 3.34 82,969 518 5.12
76 Erlang 3.39 98,537 565 4.10
79 Node.js #3 12.25 102,257 431 12.27
79 Node.js #2 12.17 102,679 405 12.18
100 Racket 10.49 129,741 459 10.44
101 * Racket #2 1.26 131,547 1142 1.20
123 Pharo Smalltalk 7.31 160,817 706 7.32
177 Java naot #5 8.09 230,797 925 8.09
233 Java naot 8.86 304,071 807 8.89
236 * Julia #3 1.14 307,749 512 1.23
242 * Julia #2 1.25 315,859 686 1.30
318 Julia #4 3.80 414,781 531 3.87
628 Lisp SBCL #3 3.38 817,897 499 3.36
628 Lisp SBCL #4 3.37 817,934 495 3.35
642 Lisp SBCL #2 6.00 836,059 655 5.99
Java naot #2 Empty
Java naot #4 Empty
Java naot #3 Empty
Lua #7 Empty
Lua #5 Empty
Lua Empty
OCaml #7 Empty
Perl #2 Empty
Perl #4 Empty
Python 3 #5 Empty
Ruby #2 Empty
Ruby #5 Empty