Python 3 versus Lua
How the programs are written matters! Always look at the source code.
If the fastest programs are flagged * possible hand-written vector instructions or "unsafe" or naked ffi, does the host language matter? You might be more interested in the less optimised programs — more seconds, less gz source code.
fannkuch-redux | |||||
---|---|---|---|---|---|
elapsed | Mean or 95% CI | ||||
source | secs | cpu secs | mem | gz | make |
Lua | 604.54 | 604.44 | 3,330 | 469 | 0.17 |
Python 3 #6 | 943.88 | 942.63 | 11,874 | 391 | 3.58 |
Python 3 #4 | 311.18 | 1,221.85 | 28,701 | 960 | 5.27 |
Python 3 #8 | 2,457.09 | 2,455.59 | 11,874 | 414 | 5.65 |
n-body | |||||
elapsed | Mean or 95% CI | ||||
source | secs | cpu secs | mem | gz | make |
Lua #2 | 216.21 | 222.12—231.65 | 3,269 | 1200 | 0.10 |
Lua #4 | 216.59 | 224.22—232.39 | 3,273 | 1312 | 0.18 |
Lua | 244.50 | 250.36—259.88 | 3,273 | 1207 | 0.19 |
Python 3 | 372.41 | 371.23 | 12,198 | 1201 | 5.23 |
Python 3 #2 | 442.06 | 440.87 | 12,554 | 1247 | 5.24 |
Python 3 #8 | 529.38 | 528.16 | 12,497 | 1172 | 4.94 |
spectral-norm | |||||
elapsed | Mean or 95% CI | ||||
source | secs | cpu secs | mem | gz | make |
Lua | 77.63 | 77.91—90.12 | 3,568 | 335 | 0.19 |
Python 3 #6 | 349.68 | 348.48 | 13,660 | 334 | 5.44 |
Python 3 #4 | 90.37 | 352.91 | 34,693 | 415 | 5.41 |
Python 3 #8 | 386.45 | 385.07 | 12,833 | 334 | 5.08 |
Python 3 #7 | 109.91 | 421.84 | 34,578 | 425 | 5.30 |
mandelbrot | |||||
elapsed | Mean or 95% CI | ||||
source | secs | cpu secs | mem | gz | make |
Lua #3 | 487.31 | 487.90—488.97 | 3,711 | 364 | 0.18 |
Lua | 500.61 | 500.82—501.71 | 3,707 | 365 | 0.16 |
Lua #2 | 523.44 | 524.95—527.02 | 3,232 | 373 | 0.15 |
Lua #6 | 159.01 | 557.36—558.01 | 652,796 | 630 | 0.10 |
Python 3 #7 | 182.94 | 723.28 | 62,173 | 698 | 5.52 |
Python 3 #3 | 879.41 | 877.96 | 45,085 | 319 | 5.26 |
Python 3 #2 | 237.64 | 937.87 | 230,973 | 790 | 5.42 |
Python 3 #5 | 260.63 | 1,033.16 | 61,620 | 463 | 5.48 |
Python 3 #8 | 1,577.29 | 1,575.80 | 45,031 | 379 | 4.84 |
fasta | |||||
elapsed | Mean or 95% CI | ||||
source | secs | cpu secs | mem | gz | make |
Lua #2 | 24.14 | 24.33—26.33 | 3,686 | 1065 | 0.20 |
Lua #3 | 24.15 | 24.17—25.73 | 3,682 | 1065 | 0.18 |
Python 3 #3 | 39.03 | 38.30—47.80 | 12,218 | 1007 | 5.32 |
Python 3 #2 | 39.06 | 38.61—46.82 | 12,415 | 1126 | 5.21 |
Python 3 #5 | 27.95 | 54.20—54.96 | 1,190,347 | 1951 | 5.52 |
Python 3 | 57.39 | 56.94—65.76 | 12,100 | 823 | 5.06 |
Python 3 #8 | 153.17 | 153.78—158.43 | 11,915 | 738 | 5.04 |
k-nucleotide | |||||
elapsed | Mean or 95% CI | ||||
source | secs | cpu secs | mem | gz | make |
Lua #2 | 90.52 | 90.72—91.24 | 613,040 | 620 | 0.15 |
Python 3 #3 | 46.55 | 182.32—187.37 | 674,185 | 1970 | 5.68 |
Python 3 #4 | 76.67 | 233.00—239.32 | 523,751 | 663 | 4.89 |
Python 3 #8 | 234.08 | 235.36—236.89 | 642,265 | 525 | 5.15 |
Python 3 | 234.20 | 235.10—237.16 | 515,047 | 499 | 5.34 |
Python 3 #9 | 66.67 | 236.43—238.45 | 392,184 | 614 | 4.09 |
reverse-complement | |||||
elapsed | Mean or 95% CI | ||||
source | secs | cpu secs | mem | gz | make |
Python 3 #3 | 4.96 | 4.95 | 523,801 | 803 | 5.28 |
Python 3 #5 | 4.18 | 7.46—7.50 | 2,418,156 | 960 | 5.36 |
Python 3 #2 | 10.09 | 10.13—10.24 | 1,837,285 | 440 | 5.32 |
Python 3 | 10.43 | 10.43—10.59 | 2,040,713 | 484 | 5.28 |
Python 3 #6 | 7.59 | 11.07—11.11 | 2,795,930 | 821 | 5.37 |
Python 3 #4 | 13.47 | 13.44—13.88 | 4,109,324 | 343 | 5.05 |
Lua #2 | 38.73 | 38.89—39.62 | 2,724,770 | 560 | 0.18 |
Lua #5 | 42.84 | 44.40—45.94 | 2,227,048 | 758 | 0.20 |
Lua #4 | 46.06 | 46.12—48.03 | 653,398 | 600 | 0.18 |
binary-trees [ Contentious. Different approaches. ] | |||||
elapsed | Mean or 95% CI | ||||
source | secs | cpu secs | mem | gz | make |
Python 3 #2 | 100.49 | 100.69—101.09 | 281,829 | 344 | 5.08 |
Python 3 #4 | 33.37 | 121.32—121.68 | 460,771 | 481 | 5.57 |
Python 3 | 34.85 | 123.08—123.98 | 445,649 | 597 | 5.16 |
Python 3 #5 | 35.37 | 125.71—126.12 | 806,117 | 669 | 5.30 |
Lua #2 | 142.32 | 145.28—148.96 | 1,043,743 | 418 | 0.13 |
Python 3 #3 | 51.88 | 148.91—149.87 | 819,077 | 1247 | 5.39 |
Lua #3 | 82.05 | 164.78—165.70 | 1,753,616 | 690 | 0.18 |
Lua #4 | 47.56 | 175.72—176.19 | 2,055,766 | 670 | 0.16 |
pidigits [ Contentious. Different libraries. ] | |||||
elapsed | Mean or 95% CI | ||||
source | secs | cpu secs | mem | gz | make |
* Python 3 #3 | 1.35 | 1.28—1.32 | 20,009 | 573 | 5.34 |
Python 3 #5 | 1.40 | 1.36 | 15,606 | 369 | 7.20 |
* Lua | 2.99 | 3.02 | 24,666 | 482 | 0.13 |
Python 3 #4 | 4.63 | 4.60 | 12,718 | 348 | 4.88 |
* Lua #7 | |||||
Lua #6 | |||||
* Lua #5 | |||||
regex-redux [ Contentious. Different libraries. ] | |||||
elapsed | Mean or 95% CI | ||||
source | secs | cpu secs | mem | gz | make |
Lua | 2.59 | 2.59 | 360,264 | 488 | 0.17 |
* Python 3 #2 | 1.41 | 2.65 | 191,300 | 1411 | 5.48 |
Python 3 | 8.96 | 16.47—16.75 | 459,624 | 515 | 5.47 |
Python 3 | |||||
Lua |