Python 3 versus Java
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 #3 | 40.02 | 40.12—40.21 | 62,652 | 1264 | 1.69 |
Java | 10.48 | 42.17—43.29 | 62,661 | 1289 | 1.73 |
Java #2 | 45.41 | 45.13—51.49 | 60,027 | 520 | 1.68 |
Java #8 | 46.66 | 49.88—55.68 | 59,994 | 517 | 1.65 |
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 #4 | 6.92 | 6.94 | 60,592 | 1495 | 1.65 |
Java #5 | 7.34 | 7.39 | 61,669 | 1435 | 1.78 |
Java #2 | 7.51 | 7.53 | 60,846 | 1430 | 1.71 |
Java #3 | 7.52 | 7.54 | 61,186 | 1436 | 1.65 |
Java #8 | 7.61 | 7.66 | 60,953 | 1322 | 1.67 |
Java | 7.89 | 7.91 | 61,276 | 1437 | 1.70 |
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 | 5.47 | 5.51 | 61,817 | 521 | 1.51 |
Java #8 | 5.47 | 5.51 | 62,308 | 453 | 1.72 |
Java #3 | 1.61 | 6.01 | 62,812 | 762 | 1.68 |
Java #2 | 1.65 | 6.16—6.20 | 61,784 | 956 | 2.76 |
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 #2 | 4.16 | 16.30—16.44 | 101,253 | 802 | 1.72 |
Java #4 | 4.44 | 16.15—16.21 | 124,953 | 667 | 1.66 |
Java #6 | 4.21 | 16.67—17.00 | 100,794 | 808 | 1.78 |
Java | 24.54 | 24.65—24.78 | 60,711 | 671 | 1.81 |
Java #8 | 27.72 | 27.85—27.91 | 63,836 | 441 | 1.74 |
Java #3 | 7.11 | 28.81—34.50 | 101,401 | 910 | 1.91 |
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 |
Java #4 | 3.32 | 3.42 | 62,726 | 1528 | 1.74 |
Java #6 | 1.20 | 3.73 | 68,055 | 2549 | 1.91 |
Java #5 | 1.27 | 3.95—4.17 | 68,420 | 2478 | 1.86 |
Java #2 | 4.41 | 4.64—4.73 | 65,995 | 1259 | 1.75 |
Java #8 | 10.27 | 10.94—11.09 | 202,166 | 894 | 1.99 |
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 |
Java | 4.94 | 16.37—17.19 | 459,260 | 1821 | 2.19 |
Java #3 | 7.25 | 25.39—25.58 | 389,857 | 1642 | 2.01 |
Java #6 | 7.27 | 25.30—26.29 | 389,628 | 1614 | 2.19 |
Java #4 | 34.38 | 34.66—36.43 | 218,042 | 1887 | 2.05 |
Java #5 | 20.48 | 44.95—46.24 | 243,007 | 2225 | 2.12 |
Java #8 | 79.72 | 83.79—87.16 | 1,484,460 | 786 | 2.09 |
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 |
Java #6 | 3.20 | 3.84 | 2,103,058 | 760 | 1.69 |
Python 3 #3 | 4.96 | 4.95 | 523,801 | 803 | 5.28 |
Java #5 | 4.81 | 4.93—5.10 | 1,143,575 | 1115 | 1.66 |
Java #4 | 5.73 | 5.87—5.94 | 1,958,097 | 656 | 1.58 |
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 #7 | |||||
Java #3 | |||||
binary-trees [ Contentious. Different approaches. ] | |||||
elapsed | Mean or 95% CI | ||||
source | secs | cpu secs | mem | gz | make |
Java #4 | 4.45 | 5.56—5.91 | 1,804,603 | 846 | 2.63 |
Java #6 | 4.91 | 5.73—5.77 | 1,792,643 | 535 | 1.59 |
Java #3 | 4.92 | 5.73—5.85 | 1,733,562 | 546 | 1.55 |
Java #2 | 5.05 | 5.84—5.91 | 1,792,967 | 558 | 1.78 |
Java #7 | 2.62 | 8.09—8.18 | 1,778,696 | 841 | 1.88 |
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 |
* Java #3 | 0.84 | 0.86 | 60,424 | 770 | 1.73 |
* Java #4 | 1.05 | 1.27 | 78,606 | 733 | 3.62 |
* 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 #2 | 1.34 | 1.41 | 65,090 | 944 | 1.71 |
Python 3 #4 | 4.63 | 4.60 | 12,718 | 348 | 4.88 |
Java | 7.72 | 8.78—8.83 | 453,767 | 807 | 1.56 |
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 |
* Java #2 | 1.60 | 3.19 | 386,425 | 2201 | 3.75 |
Python 3 | 8.96 | 16.47—16.75 | 459,624 | 515 | 5.47 |
Java | 8.45 | 16.81—16.98 | 533,582 | 875 | 1.81 |
Java #6 | 5.61 | 17.10—17.43 | 1,287,463 | 746 | 1.82 |
Java #3 | 5.30 | 17.04—17.22 | 636,994 | 935 | 1.82 |
Python 3 | |||||
Java |