C# versus Go
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 |
* C# #5 | 2.35 | 9.03 | 33,559 | 1485 | 7.63 |
C# #2 | 30.41 | 30.39 | 32,924 | 584 | 8.13 |
Go #3 | 8.36 | 33.35 | 3,846 | 975 | 5.31 |
* C# #9 | 8.43 | 33.37 | 34,038 | 1232 | 7.74 |
C# #6 | 9.95 | 39.50—39.54 | 33,300 | 1075 | 7.64 |
C# #3 | 11.04 | 44.49—46.04 | 33,182 | 1117 | 7.89 |
C# #8 | 43.84 | 43.83—43.87 | 32,858 | 519 | 7.51 |
Go #8 | 46.15 | 46.26—46.33 | 3,207 | 500 | 5.43 |
Go | 12.27 | 49.09 | 4,903 | 906 | 5.41 |
Go #2 | 12.36 | 49.40 | 16,966 | 903 | 5.43 |
n-body | |||||
elapsed | Mean or 95% CI | ||||
source | secs | cpu secs | mem | gz | make |
* C# #9 | 3.20 | 3.18 | 32,059 | 2480 | 7.92 |
* C# #4 | 3.77 | 3.75 | 32,215 | 2137 | 8.55 |
* C# #7 | 4.83 | 4.81 | 32,297 | 1715 | 7.54 |
* C# #6 | 4.85 | 4.84 | 32,203 | 1754 | 7.89 |
Go #3 | 6.39 | 6.41 | 3,191 | 1207 | 5.43 |
C# #3 | 6.68 | 6.66 | 33,280 | 1311 | 7.62 |
C# #2 | 6.92 | 6.92 | 33,280 | 1339 | 7.93 |
Go | 7.02 | 7.09—7.27 | 3,228 | 1316 | 5.36 |
Go #2 | 7.04 | 7.06 | 3,203 | 1222 | 5.35 |
C# #8 | 7.24 | 7.23 | 32,870 | 1335 | 7.70 |
C# | 7.68 | 7.67 | 33,341 | 1424 | 7.60 |
C# #0 | 7.68 | 7.67 | 33,300 | 1342 | 7.60 |
Go #8 | 9.60 | 9.64 | 3,191 | 1224 | 5.47 |
spectral-norm | |||||
elapsed | Mean or 95% CI | ||||
source | secs | cpu secs | mem | gz | make |
* C# #5 | 0.96 | 3.44—3.64 | 37,929 | 776 | 8.71 |
Go #8 | 5.34 | 5.36 | 3,838 | 429 | 5.35 |
Go | 5.34 | 5.36 | 4,059 | 417 | 5.35 |
C# #8 | 5.43 | 5.41 | 33,214 | 441 | 7.70 |
Go #4 | 1.43 | 5.69 | 4,174 | 555 | 5.45 |
Go #2 | 1.51 | 5.70 | 4,317 | 674 | 5.56 |
C# #3 | 1.56 | 5.82 | 36,172 | 890 | 8.36 |
C# #2 | |||||
mandelbrot | |||||
elapsed | Mean or 95% CI | ||||
source | secs | cpu secs | mem | gz | make |
* C# #7 | 3.23 | 12.59—12.90 | 73,056 | 915 | 7.76 |
Go #4 | 3.77 | 15.02 | 37,970 | 912 | 5.49 |
Go #3 | 3.78 | 15.03 | 38,101 | 900 | 5.82 |
* C# | 3.97 | 15.56—15.67 | 70,214 | 1980 | 10.98 |
* C# #9 | 3.95 | 15.46—15.61 | 70,402 | 822 | 7.95 |
C# #5 | 4.08 | 15.88 | 68,202 | 851 | 11.86 |
Go | 5.04 | 20.05 | 35,787 | 829 | 5.40 |
C# #8 | 26.42 | 26.42 | 33,915 | 492 | 7.59 |
C# #3 | 6.81 | 26.76—26.83 | 66,859 | 722 | 7.65 |
Go #8 | 26.70 | 26.77 | 3,199 | 500 | 5.39 |
Go #2 | 6.87 | 27.32 | 35,549 | 843 | 5.69 |
Go #6 | 6.91 | 27.48 | 35,119 | 707 | 5.69 |
C# #2 | 47.72 | 48.00—48.46 | 33,300 | 504 | 7.60 |
fasta | |||||
elapsed | Mean or 95% CI | ||||
source | secs | cpu secs | mem | gz | make |
C# #9 | 1.23 | 1.23 | 33,571 | 1512 | 7.79 |
Go | 3.74 | 3.76 | 3,207 | 1055 | 5.36 |
Go #2 | 1.27 | 4.08 | 12,644 | 1405 | 5.51 |
Go #3 | 1.52 | 4.10 | 5,095 | 1362 | 5.29 |
C# #5 | 1.53 | 5.45—5.54 | 47,833 | 1702 | 7.79 |
C# #8 | 5.80 | 5.49 | 37,343 | 904 | 8.59 |
C# | 1.80 | 6.22—6.38 | 40,841 | 2113 | 7.88 |
Go #8 | 11.22 | 11.54—11.80 | 9,052 | 880 | 5.55 |
k-nucleotide | |||||
elapsed | Mean or 95% CI | ||||
source | secs | cpu secs | mem | gz | make |
C# | 3.26 | 10.80—11.05 | 190,829 | 2046 | 7.66 |
C# #6 | 5.73 | 15.07—15.28 | 189,972 | 1615 | 7.65 |
Go #7 | 7.58 | 28.83—29.08 | 168,186 | 1613 | 5.42 |
Go #3 | 8.20 | 29.98—30.69 | 150,413 | 1729 | 5.63 |
Go #6 | 8.30 | 30.22—30.75 | 150,442 | 1596 | 5.79 |
Go #4 | 9.27 | 32.00—35.21 | 144,650 | 1552 | 5.11 |
C# #4 | 12.25 | 43.35—45.07 | 606,466 | 1725 | 7.64 |
C# #7 | 42.96 | 43.57—43.83 | 557,740 | 1449 | 7.50 |
Go #8 | 61.38 | 62.37—62.83 | 558,379 | 752 | 5.20 |
C# #8 | 87.51 | 79.54—80.86 | 1,408,664 | 736 | 7.89 |
reverse-complement | |||||
elapsed | Mean or 95% CI | ||||
source | secs | cpu secs | mem | gz | make |
* C# #9 | 0.68 | 1.51 | 550,793 | 2641 | 12.35 |
Go #2 | 2.22 | 2.34—2.39 | 822,211 | 614 | 4.79 |
Go #3 | 2.50 | 2.62—2.66 | 821,985 | 609 | 4.88 |
C# | 3.32 | 3.31—3.39 | 666,341 | 1130 | 7.59 |
Go #6 | 1.93 | 3.46—3.52 | 1,277,608 | 1340 | 4.77 |
C# #5 | 2.59 | 3.87 | 1,056,952 | 1620 | 7.47 |
C# #6 | 1.75 | 4.03—4.07 | 1,058,517 | 1627 | 7.69 |
C# #7 | 1.69 | 4.47—4.62 | 967,602 | 1312 | 11.98 |
C# #3 | 8.65 | 13.47—13.71 | 1,266,110 | 934 | 8.01 |
Go #5 | |||||
Go | |||||
binary-trees [ Contentious. Different approaches. ] | |||||
elapsed | Mean or 95% CI | ||||
source | secs | cpu secs | mem | gz | make |
C# #2 | 6.47 | 18.08—18.35 | 1,107,055 | 717 | 7.59 |
C# #7 | 6.40 | 18.01—18.41 | 1,053,831 | 706 | 7.48 |
C# | 7.20 | 20.10—20.51 | 3,005,301 | 668 | 8.11 |
C# #3 | 7.42 | 20.59—21.11 | 3,014,975 | 688 | 7.55 |
Go #6 | 27.93 | 29.32—29.66 | 416,195 | 618 | 5.43 |
Go #2 | 14.21 | 56.45—56.55 | 635,613 | 672 | 5.41 |
Go #3 | 14.90 | 57.97—58.17 | 329,499 | 806 | 5.29 |
Go #5 | 14.68 | 57.76—58.07 | 386,056 | 957 | 5.41 |
Go | 32.05 | 59.81—60.00 | 243,114 | 488 | 5.21 |
Go #7 | 32.57 | 61.40—61.53 | 241,345 | 531 | 5.30 |
C# #6 | |||||
pidigits [ Contentious. Different libraries. ] | |||||
elapsed | Mean or 95% CI | ||||
source | secs | cpu secs | mem | gz | make |
* C# #6 | 0.84 | 0.82 | 34,796 | 1182 | 7.91 |
* Go #4 | 0.82 | 0.84 | 6,402 | 689 | 8.17 |
* C# #5 | 0.86 | 0.89 | 37,335 | 990 | 7.47 |
Go | 1.15 | 1.22—1.31 | 7,533 | 715 | 11.71 |
* Go #3 | 1.17 | 1.35—1.49 | 6,885 | 610 | 8.50 |
* C# #4 | 1.31 | 1.30 | 35,496 | 1135 | 7.69 |
Go #2 | 1.76 | 1.90—2.03 | 7,823 | 740 | 7.70 |
Go #6 | 2.47 | 2.48 | 10,703 | 727 | 5.59 |
Go #7 | 5.00 | 5.65 | 10,527 | 702 | 6.17 |
C# #7 | 11.08 | 9.19—10.76 | 44,098 | 579 | 7.80 |
regex-redux [ Contentious. Different libraries. ] | |||||
elapsed | Mean or 95% CI | ||||
source | secs | cpu secs | mem | gz | make |
* C# #2 | 1.43 | 2.64 | 402,747 | 1881 | 7.54 |
C# | 4.63 | 4.83 | 618,988 | 641 | 7.95 |
C# #5 | 1.90 | 5.18—5.38 | 632,472 | 679 | 7.53 |
Go #5 | 3.23 | 5.40—5.44 | 297,800 | 817 | 8.13 |
C# #4 | 8.59 | 30.62—33.76 | 882,033 | 854 | 7.44 |
Go #4 | 14.49 | 35.20—35.71 | 349,008 | 832 | 8.44 |
Go #3 | 25.15 | 61.72—63.46 | 336,585 | 836 | 5.60 |
Go | 25.79 | 61.91—62.99 | 301,662 | 749 | 5.85 |
C# | |||||
Go |