Python 3 versus Java -Xint
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 |
Java -Xint #3 | 498.58 | 497.22 | 55,575 | 1264 | 1.80 |
Java -Xint | 134.82 | 527.88 | 55,443 | 1289 | 2.69 |
Java -Xint #2 | 697.50 | 697.68 | 54,956 | 520 | 2.72 |
Java -Xint #8 | 708.83 | 709.01 | 54,968 | 517 | 1.80 |
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 |
Java -Xint #4 | 160.54 | 160.58—160.66 | 56,537 | 1495 | 1.69 |
Java -Xint #8 | 160.98 | 161.04—161.34 | 56,529 | 1322 | 1.78 |
Java -Xint #3 | 175.24 | 175.34—175.45 | 56,549 | 1436 | 2.79 |
Java -Xint #2 | 178.94 | 179.09—179.27 | 56,537 | 1430 | 1.66 |
Java -Xint | 187.47 | 186.89—189.24 | 56,762 | 1437 | 1.71 |
Java -Xint #5 | 240.86 | 240.99—241.14 | 56,521 | 1435 | 1.84 |
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 |
Java -Xint #2 | 17.04 | 67.36 | 57,840 | 956 | 2.74 |
Java -Xint #8 | 84.13 | 84.24—84.42 | 57,487 | 453 | 2.80 |
Java -Xint | 84.66 | 84.78—84.97 | 57,860 | 521 | 1.77 |
Java -Xint #3 | 26.20 | 103.53—104.58 | 58,536 | 762 | 1.68 |
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 |
Java -Xint | 361.43 | 359.89 | 89,395 | 671 | 1.86 |
Java -Xint #3 | 121.75 | 478.38 | 129,159 | 910 | 2.82 |
Java -Xint #4 | 163.49 | 605.97 | 153,235 | 667 | 1.91 |
Java -Xint #8 | 631.98 | 632.13 | 87,757 | 441 | 1.64 |
Python 3 #7 | 182.94 | 723.28 | 62,173 | 698 | 5.52 |
Java -Xint #2 | 206.34 | 818.36 | 127,955 | 802 | 1.79 |
Java -Xint #6 | 215.54 | 854.67 | 128,238 | 808 | 6.56 |
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 |
Java -Xint #5 | 8.96 | 23.43 | 60,871 | 2478 | 2.00 |
Java -Xint #4 | 25.47 | 25.46 | 55,329 | 1528 | 2.74 |
Java -Xint #6 | 9.18 | 30.82 | 60,899 | 2549 | 2.03 |
Java -Xint #2 | 37.02 | 37.02 | 55,284 | 1259 | 1.86 |
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 |
Java -Xint #8 | 329.43 | 327.85 | 465,990 | 894 | 2.67 |
k-nucleotide | |||||
elapsed | Mean or 95% CI | ||||
source | secs | cpu secs | mem | gz | make |
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 |
Java -Xint | 174.01 | 431.72—433.22 | 379,441 | 1821 | 3.24 |
Java -Xint #4 | 727.60 | 727.61 | 465,605 | 1887 | 2.10 |
Java -Xint #5 | 361.44 | 825.11 | 486,142 | 2225 | 2.29 |
Java -Xint #3 | 387.14 | 1,261.16 | 631,669 | 1642 | 2.22 |
Java -Xint #6 | 389.44 | 1,264.41 | 631,869 | 1614 | 3.23 |
Java -Xint #8 | |||||
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 |
Java -Xint #6 | 39.75 | 48.48—48.58 | 2,098,323 | 760 | 1.83 |
Java -Xint #4 | 80.45 | 80.51—80.60 | 1,949,635 | 656 | 1.66 |
Java -Xint #5 | 173.32 | 173.61—173.83 | 1,136,472 | 1115 | 2.71 |
Java -Xint #7 | |||||
Java -Xint #3 | |||||
binary-trees [ Contentious. Different approaches. ] | |||||
elapsed | Mean or 95% CI | ||||
source | secs | cpu secs | mem | gz | make |
Java -Xint #3 | 67.05 | 67.79—67.89 | 1,208,656 | 546 | 2.73 |
Java -Xint #6 | 67.56 | 68.29—68.36 | 1,276,555 | 535 | 2.68 |
Java -Xint #2 | 74.47 | 75.23—75.47 | 1,110,118 | 558 | 2.67 |
Java -Xint #7 | 32.92 | 96.82—96.97 | 996,970 | 841 | 1.99 |
Java -Xint #4 | 98.01 | 98.78—98.99 | 1,018,921 | 846 | 2.81 |
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 |
Python 3 #3 | 51.88 | 148.91—149.87 | 819,077 | 1247 | 5.39 |
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 |
* Java -Xint #2 | 1.46 | 1.44 | 58,733 | 944 | 1.70 |
Python 3 #4 | 4.63 | 4.60 | 12,718 | 348 | 4.88 |
Java -Xint | 182.51 | 182.93—183.32 | 207,122 | 807 | 2.84 |
* Java -Xint #4 | |||||
* Java -Xint #3 | |||||
regex-redux [ Contentious. Different libraries. ] | |||||
elapsed | Mean or 95% CI | ||||
source | secs | cpu secs | mem | gz | make |
* 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 |
Java -Xint | 558.70 | 999.78 | 569,221 | 875 | 1.93 |
Java -Xint #3 | 381.83 | 1,011.98 | 693,670 | 935 | 1.78 |
Java -Xint #6 | 384.29 | 1,012.72 | 1,320,649 | 746 | 3.18 |
* Java -Xint #2 | |||||
Python 3 | |||||
Java -Xint |