The Computer Language
24.11 Benchmarks Game

Ruby yjit versus PHP 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
PHP #2 460.00 19,700 447 459.93
PHP #4 128.28 19,700 1168 512.34
PHP #3 129.55 19,700 1166 514.06
Ruby yjit #2 139.05 21,120 1462 521.30
PHP 591.53 19,700 488 591.44
Ruby yjit 1,354.19 20,864 391 1,354.14
PHP #8 1,731.37 19,700 477 1,731.10
Ruby yjit #8 1,980.46 20,736 418 1,980.37
n-body
source secs mem gz cpu secs
Ruby yjit #3 186.79 20,864 1169 186.79
PHP #3 204.18 19,768 1088 204.15
Ruby yjit #2 215.78 20,864 1143 215.77
PHP #8 246.25 19,768 1245 246.21
Ruby yjit #8 388.21 21,376 1160 388.20
Ruby yjit #7 704.57 21,120 1139 704.53
spectral-norm
source secs mem gz cpu secs
PHP 18.14 19,768 1157 72.35
Ruby yjit #4 128.52 22,656 333 128.51
PHP #2 132.92 19,768 403 132.89
PHP #8 136.62 19,768 357 136.59
PHP #3 35.75 19,768 1214 141.74
Ruby yjit #8 168.99 21,120 294 168.99
Ruby yjit #5 57.89 27,264 764 212.15
mandelbrot
source secs mem gz cpu secs
PHP 262.49 19,768 452 262.45
PHP #3 71.34 47,676 881 284.83
PHP #8 420.99 19,768 419 420.89
Ruby yjit #5 150.28 86,144 978 600.37
Ruby yjit #4 652.14 135,516 853 652.89
Ruby yjit #2 254.39 93,952 887 1,016.26
Ruby yjit #8 1,507.03 21,428 364 1,506.75
Ruby yjit #3 1,588.59 20,992 313 1,588.52
Ruby yjit #6   Failed  
Ruby yjit #7   Failed  
fasta
source secs mem gz cpu secs
PHP #3 31.09 19,768 1065 31.08
Ruby yjit #6 31.90 120,832 1097 31.90
Ruby yjit #3 43.90 120,576 1035 43.90
PHP #2 47.15 19,768 1054 47.14
PHP #8 49.44 19,960 760 49.43
Ruby yjit #5 90.76 23,168 1000 90.75
Ruby yjit #4 95.10 266,624 864 95.09
Ruby yjit #2 106.06 147,176 747 106.05
Ruby yjit #8 188.45 21,428 700 187.83
k-nucleotide
source secs mem gz cpu secs
PHP #8 79.41 629,652 571 79.39
PHP #4 25.74 259,940 1290 90.19
Ruby yjit #2 252.78 181,808 426 252.58
Ruby yjit #3 277.67 207,596 546 277.88
Ruby yjit #7 300.36 392,960 792 298.86
Ruby yjit 86.11 171,696 583 302.91
Ruby yjit #8 788.25 572,736 529 787.84
reverse-complement
source secs mem gz cpu secs
PHP 10.22 1,488,780 323 10.22
Ruby yjit #4 5.88 2,510,920 608 11.51
PHP #2 12.21 1,786,608 288 12.20
PHP #3 8.13 536,024 452 12.47
Ruby yjit #5 14.12 1,623,336 301 14.11
Ruby yjit #3 8.95 4,235,052 490 17.34
Ruby yjit #2 27.45 1,001,920 272 27.45
Ruby yjit 18.31 5,141,976 521 35.91
binary-trees
source secs mem gz cpu secs
Ruby yjit #4 47.23 478,464 371 47.22
Ruby yjit 48.86 478,592 383 48.85
Ruby yjit #2 48.90 524,800 385 48.89
Ruby yjit #3 49.82 517,080 407 49.81
Ruby yjit #5 19.08 521,972 1016 54.19
PHP #3 69.49 920,800 434 69.47
PHP #4 24.86 917,608 786 81.20
PHP #7 22.22 947,804 767 81.25
PHP 90.61 748,120 457 90.59
PHP #2 93.68 748,028 429 93.66
PHP #5 47.37 804,828 1048 125.31
PHP #6 38.24 804,884 877 130.14
Ruby yjit #8 130.97 478,720 494 130.95
PHP #8 146.78 749,804 590 146.75
pidigits
source secs mem gz cpu secs
PHP #5 0.97 19,768 405 0.97
PHP #3 0.99 19,768 510 0.99
PHP #4 0.99 19,768 396 0.99
PHP #2 1.49 19,768 552 1.49
Ruby yjit #5 1.50 1,011,072 494 1.50
Ruby yjit #2 3.10 2,431,144 666 3.09
Ruby yjit 17.73 104,576 524 17.72
PHP 102.67 19,768 756 102.65
regex-redux
source secs mem gz cpu secs
PHP 1.87 194,684 822 3.70
Ruby yjit #2 22.86 216,576 444 22.87
Ruby yjit #3 11.84 216,576 730 23.97
Ruby yjit #9 29.92 216,704 340 29.91
Ruby yjit

ruby 3.3.5
(2024-09-03
revision ef084cc8f4)
+YJIT [x86_64-linux]

PHP

PHP 8.4.1 (cli)
(built: Nov 22 2024 14:22:47) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.4.1,
with Zend OPcache v8.4.1,
Copyright (c) Zend Technologies