The Computer Language
24.12 Benchmarks Game

Ruby yjit versus Python 3 fastest performance

How the programs are written matters! Always look at the source code.

If the fastest programs are * hand-written vector instructions, does the host language matter? You might be more interested in the less optimised programs — more seconds, less gz source code.

fannkuch-redux
source secs mem gz cpu secs
Ruby yjit #2 152.41 19,680 1462 591.05
Python 3 #6 1,033.31 19,312 391 1,033.27
Python 3 #4 302.37 19,312 960 1,196.45
Ruby yjit 1,451.71 19,680 391 1,451.48
Ruby yjit #8 1,932.07 19,680 418 1,931.76
Python 3 #8 2,259.59 19,312 414 2,259.50
n-body
source secs mem gz cpu secs
Ruby yjit #3 166.55 19,620 1169 166.53
Ruby yjit #2 172.26 19,620 1143 172.23
Ruby yjit #8 317.96 19,620 1160 317.90
Python 3 355.06 19,312 1201 355.05
Python 3 #2 374.16 19,312 1247 374.14
Python 3 #8 518.11 19,312 1172 518.09
Ruby yjit #7 769.49 19,620 1139 769.35
spectral-norm
source secs mem gz cpu secs
Ruby yjit #4 128.52 22,656 333 128.51
Ruby yjit #8 168.99 21,120 294 168.99
Ruby yjit #5 57.89 27,264 764 212.15
Python 3 #6 347.53 19,316 334 347.52
Python 3 #4 90.52 19,308 415 359.95
Python 3 #8 379.97 19,440 334 379.96
Python 3 #7 97.11 19,316 425 380.79
mandelbrot
source secs mem gz cpu secs
Ruby yjit #5 141.70 79,248 978 565.92
Ruby yjit #4 578.95 126,996 853 579.53
Ruby yjit #2 165.71 87,360 887 660.93
Python 3 #7 172.20 19,312 698 687.68
Python 3 #3 861.76 19,312 319 861.73
Python 3 #2 235.71 95,164 790 926.30
Ruby yjit #8 942.59 19,620 364 942.41
Python 3 #5 257.00 19,312 463 1,026.96
Python 3 #8 1,528.00 19,364 379 1,527.73
Ruby yjit #3 1,695.20 19,620 313 1,694.90
Ruby yjit #6   Timed Out  
Ruby yjit #7   Timed Out  
fasta
source secs mem gz cpu secs
Ruby yjit #6 34.00 113,008 1097 33.99
Python 3 #2 39.00 19,312 1126 39.00
Python 3 #3 39.12 19,312 1007 39.12
Ruby yjit #3 43.54 113,048 1035 43.53
Python 3 #5 27.86 827,284 1951 53.94
Python 3 57.21 19,312 823 57.20
Ruby yjit #2 82.85 136,432 747 82.83
Ruby yjit #5 99.25 19,620 1000 99.23
Ruby yjit #4 142.74 294,212 864 142.15
Python 3 #8 156.78 19,780 738 156.35
Ruby yjit #8 190.64 19,620 700 190.20
k-nucleotide
source secs mem gz cpu secs
Python 3 #3 50.15 262,368 1970 185.77
Python 3 #4 79.01 506,112 663 236.67
Python 3 238.45 499,072 499 237.78
Python 3 #8 238.78 623,448 525 237.93
Python 3 #9 68.33 379,392 614 238.74
Ruby yjit #7 255.31 385,864 792 253.65
Ruby yjit #2 263.04 171,524 426 262.74
Ruby yjit #3 300.38 198,360 546 300.61
Ruby yjit 87.40 162,976 583 318.58
Ruby yjit #8 529.77 599,256 529 529.29
reverse-complement
source secs mem gz cpu secs
Python 3 #3 4.86 507,712 803 4.86
Python 3 #5 4.09 1,500,716 960 7.41
Python 3 #2 10.08 1,788,136 440 10.08
Python 3 10.29 1,986,440 484 10.29
Python 3 #6 7.38 2,484,372 821 10.89
Ruby yjit #4 6.11 2,491,828 608 11.94
Ruby yjit #5 13.38 1,602,784 301 13.37
Python 3 #4 13.41 4,002,688 343 13.41
Ruby yjit #3 8.36 4,458,064 490 16.48
Ruby yjit #2 19.55 503,176 272 19.54
Ruby yjit 13.21 5,556,616 521 25.63
binary-trees
source secs mem gz cpu secs
Ruby yjit #4 46.97 472,012 371 46.94
Ruby yjit 48.77 471,992 383 48.75
Ruby yjit #2 48.83 471,996 385 48.80
Ruby yjit #3 49.58 507,116 407 49.55
Ruby yjit #5 18.85 473,532 1016 53.80
Python 3 #2 100.90 271,872 344 100.89
Python 3 #4 33.61 276,992 481 121.96
Python 3 #5 35.49 274,816 669 126.17
Python 3 36.12 276,992 597 127.68
Ruby yjit #8 135.03 471,944 494 134.99
Python 3 #3 52.28 671,872 1247 149.07
Python 3 #8 558.92 798,336 535 558.85
pidigits
source secs mem gz cpu secs
* Python 3 #3 1.26 19,312 573 1.26
Python 3 #4 4.54 19,312 348 4.54
Ruby yjit 18.03 49,168 524 18.03
Python 3 #5   Failed  
Ruby yjit #2   Failed  
Ruby yjit #5   Failed  
regex-redux
source secs mem gz cpu secs
* Python 3 #2 1.35 168,236 1411 2.64
Python 3 8.91 432,220 515 16.44
Ruby yjit #2 23.47 212,160 444 23.47
Ruby yjit #3 12.36 208,604 730 24.37
Ruby yjit #9 30.70 212,104 340 30.69
Ruby yjit

ruby 3.4.0dev
(2024-12-25
master f450108330)
+YJIT +PRISM [x86_64-linux]

Python 3

Python 3.13.0