The Computer Language
24.04 Benchmarks Game

binary-trees

First a few simple programs.

Then optimisations, multicore parallelism, [pdf] vector parallelism.

Last hand-written vector instructions and "unsafe" programs.

  source secs mem gz    
  Erlang 10.86 469,136 426    
  Pharo Smalltalk 34.14 335,232 674    
 
 
 
× source secs mem gz cpu secs cpu load
1.0 C++ g++ #7 0.95 201,400 896 3.30 85% 84% 84% 100%
1.2 Rust #5 1.08 198,528 771 3.82 84% 84% 84% 100%
1.2 C++ g++ #5 1.14 200,660 891 3.98 85% 87% 98% 86%
1.3 C gcc #2 1.51 169,088 816 4.17 100% 65% 58% 55%
1.3 Rust #2 1.22 199,676 729 4.29 86% 99% 86% 84%
1.3 C++ g++ #9 1.72 135,936 815 4.46 52% 100% 48% 61%
1.4 C++ g++ #6 1.88 266,112 851 4.47 47% 68% 87% 36%
1.4 C gcc #3 1.89 134,400 842 4.59 47% 54% 100% 44%
1.4 Rust #4 1.29 189,052 765 4.67 99% 87% 88% 87%
1.4 C++ g++ #3 1.88 265,600 951 4.72 48% 54% 86% 63%
1.5 Free Pascal #5 2.09 132,608 929 4.98 100% 46% 41% 54%
1.5 Free Pascal #6 2.09 132,608 939 4.99 46% 56% 39% 100%
1.5 Rust #3 1.39 198,860 762 5.04 88% 89% 88% 99%
1.5 Free Pascal #7 2.12 132,608 975 5.07 100% 40% 47% 54%
1.5 C++ g++ #8 2.18 265,984 826 5.11 86% 41% 73% 34%
1.6 Java  #4 4.50 2,081,744 846 5.22 71% 30% 6% 9%
1.7 Java #3 4.80 2,076,860 546 5.59 76% 14% 6% 20%
1.7 Java #6 4.84 2,097,072 535 5.60 71% 32% 5% 7%
1.7 Java #2 4.93 2,067,656 558 5.67 49% 32% 25% 9%
1.8 Haskell GHC #8 2.38 256,828 807 5.96 79% 56% 65% 50%
2.1 Classic Fortran #2 2.26 136,704 1155 6.87 81% 73% 67% 85%
2.2 Rust 2.04 133,120 760 7.21 87% 96% 87% 87%
2.3 Lisp SBCL #3 3.30 476,572 938 7.64 65% 70% 41% 58%
2.4 Haskell GHC #7 3.18 298,112 817 7.81 60% 72% 55% 57%
2.4 Java #7 2.57 1,728,452 841 8.00 91% 76% 70% 77%
2.5 OCaml #5 8.18 213,760 468 8.17 0% 100% 1% 0%
2.5 Haskell GHC #6 4.08 242,720 601 8.35 47% 51% 58% 49%
2.7 Racket #2 9.00 323,828 422 9.00 0% 0% 100% 0%
2.7 C++ g++ 2.65 2,040,792 760 9.07 86% 85% 92% 86%
2.9 OCaml #2 3.42 217,384 759 9.63 60% 39% 98% 85%
2.9 Lisp SBCL 9.68 461,412 595 9.68 0% 99% 1% 0%
3.0 Ada 2012 GNAT #4 3.48 202,880 2117 10.05 66% 92% 70% 62%
3.4 Erlang 10.86 469,136 426 11.07 10% 0% 19% 72%
3.7 F# .NET 10.25 1,214,512 517 12.10 11% 46% 24% 43%
4.2 Erlang #2 5.02 465,116 485 14.02 72% 71% 63% 73%
4.3 C# .NET #2 4.48 1,624,564 717 14.25 78% 78% 76% 87%
4.4 C# .NET #7 4.54 1,608,796 706 14.53 75% 76% 80% 90%
4.6 Haskell GHC 13.52 669,824 500 15.19 4% 80% 23% 4%
4.6 Dart #6 11.41 448,748 488 15.23 10% 84% 13% 25%
4.7 F# .NET #7 5.26 1,671,736 527 15.45 69% 70% 77% 78%
4.7 Haskell GHC #3 6.91 650,240 544 15.45 65% 68% 48% 41%
4.7 Haskell GHC #5 7.34 674,944 567 15.67 45% 60% 44% 66%
4.8 Racket 15.80 544,844 482 15.79 0% 100% 0% 0%
4.8 C# .NET #3 4.84 2,089,712 688 15.89 81% 80% 88% 79%
4.9 Haskell GHC #2 14.46 263,936 498 16.05 25% 33% 5% 49%
4.9 C# .NET 5.08 2,046,692 668 16.32 78% 75% 79% 90%
6.3 C gcc 20.83 264,192 660 20.83 100% 0% 0% 0%
6.3 Ada 2012 GNAT 20.98 266,240 896 20.97 0% 0% 0% 100%
6.5 C++ g++ #2 21.51 265,856 514 21.51 0% 100% 0% 0%
6.9 Dart #7 10.15 709,208 869 22.93 62% 51% 56% 57%
7.1 Dart #4 10.21 698,844 1394 23.46 64% 54% 58% 54%
8.6 Dart #5 12.28 523,328 1023 28.28 57% 60% 58% 55%
8.8 Go #6 27.61 404,608 618 29.03 97% 2% 2% 4%
8.8 Chapel #3 8.69 367,360 494 29.22 99% 91% 73% 72%
9.2 C gcc #5 8.27 351,232 914 30.31 97% 85% 92% 91%
9.4 Node js #7 18.49 1,291,392 458 30.94 37% 34% 33% 63%
9.5 Classic Fortran 31.48 525,824 780 31.48 0% 0% 100% 0%
9.8 Node js #6 9.59 1,275,572 752 32.36 83% 87% 84% 83%
10 Ada 2012 GNAT #3 9.72 529,280 1275 32.90 83% 83% 82% 91%
11 Node js 9.68 1,230,804 717 35.09 90% 91% 90% 93%
11 Julia #2 18.15 644,864 430 35.92 90% 42% 32% 33%
11 VW Smalltalk #3 17.22 375,936 932 37.86 29% 67% 52% 72%
12 VW Smalltalk 38.94 375,680 717 38.92 0% 100% 0% 0%
12 Dart #3 15.90 1,236,508 1219 39.62 61% 65% 62% 61%
12 Julia #3 14.34 693,600 640 40.22 71% 72% 58% 77%
12 Swift #5 13.79 736,000 813 40.99 69% 73% 90% 65%
13 Swift #3 13.33 705,408 868 43.00 77% 63% 99% 82%
13 Swift #2 13.28 705,280 822 43.28 79% 82% 65% 100%
14 PHP #3 45.78 921,600 434 45.78 100% 0% 0% 0%
14 Ruby #4 46.87 478,848 371 46.86 0% 100% 0% 0%
15 Ruby 48.73 478,976 383 48.72 100% 0% 0% 0%
15 Ruby #2 48.78 478,976 385 48.76 0% 0% 0% 100%
15 Ruby #3 50.16 515,924 407 50.14 0% 0% 100% 0%
16 Ruby #5 18.96 521,984 1016 53.93 73% 60% 89% 62%
17 PHP #7 15.25 948,480 767 54.73 90% 89% 87% 92%
17 Go #2 13.87 601,252 672 55.04 99% 99% 99% 99%
17 PHP #4 18.02 918,400 786 55.68 80% 85% 72% 71%
17 Go #5 14.37 308,092 957 56.80 99% 99% 99% 99%
17 Go #3 14.86 323,544 806 57.39 97% 96% 97% 96%
18 Go 30.97 262,396 488 57.95 42% 48% 48% 48%
18 Swift 20.15 735,488 720 59.68 68% 62% 72% 95%
19 Go #7 33.10 292,588 531 61.68 46% 49% 43% 48%
19 PHP 62.31 748,808 457 62.30 100% 0% 0% 0%
19 Swift #4 19.49 705,536 772 62.34 99% 75% 78% 67%
19 PHP #2 62.55 748,812 429 62.54 0% 100% 0% 0%
25 PHP #5 32.58 805,504 1048 83.64 26% 72% 79% 79%
27 PHP #6 26.90 805,396 877 88.00 76% 88% 87% 76%
33 Python 3 #2 110.47 273,024 344 110.46 100% 0% 0% 0%
38 Python 3 #4 34.53 277,632 481 126.59 89% 89% 90% 98%
39 Python 3 #5 35.74 275,456 669 127.53 87% 88% 81% 99%
39 Python 3 36.16 277,760 597 128.12 86% 86% 96% 86%
43 Lua #2 143.45 956,672 418 143.42 0% 0% 0% 100%
43 Perl #6 38.93 760,064 800 143.68 90% 90% 89% 100%
48 Python 3 #3 55.05 672,384 1247 158.56 65% 62% 67% 93%
50 Lua #3 82.25 809,984 690 164.04 58% 56% 49% 36%
54 Lua #4 47.92 956,672 670 178.17 97% 91% 91% 93%
55 Perl #5 50.13 1,048,576 805 182.28 98% 87% 87% 91%
75 Perl 248.15 599,680 401 248.14 0% 0% 100% 0%
83 Perl #4 79.07 2,519,560 769 275.66 84% 91% 96% 87%
110 Perl #3 107.10 2,200,560 655 6 min 92% 99% 70% 75%
178 Matz's Ruby #3 9 min 840,236 400 9 min 0% 100% 0% 0%
215 Matz's Ruby #4 11 min 1,558,908 364 11 min 0% 66% 34% 0%
239 Matz's Ruby 13 min 1,561,420 376 13 min 0% 0% 0% 100%
242 Matz's Ruby #2 13 min 1,559,712 378 13 min 100% 0% 0% 0%
292 Matz's Ruby #5 5 min 1,493,752 1008 16 min 74% 96% 72% 70%
C++ g++ #4 Make Error
Julia #5 Failed
Julia #4 Failed
Swift #9 Make Error
 
 
  hand-written vector instructions | "unsafe"
 
× source secs mem gz cpu secs cpu load
2.1 Racket #3 6.79 300,316 480 6.79 0% 0% 99% 0%
2.8 Racket #4 4.77 408,068 861 9.38 45% 52% 63% 38%