Go versus C# .NET fastest performance 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 C# .NET #8 2.14 30,496 1473 8.33 C# .NET #9 8.06 31,844 1225 31.90 Go #3 8.25 10,936 969 32.92 C# .NET #6 9.16 30,572 1068 36.34 Go 11.83 11,128 900 47.26 Go #2 11.89 12,708 896 47.47 C# .NET #7 Bad Output n-body source secs mem gz cpu secs C# .NET #9 3.14 30,200 2467 3.13 C# .NET #4 3.78 30,120 2125 3.76 C# .NET #7 4.79 30,184 1704 4.78 C# .NET #6 4.81 30,192 1742 4.80 Go #3 6.36 11,244 1200 6.37 Go 6.55 11,244 1310 6.56 C# .NET #3 6.89 30,564 1305 6.87 Go #2 6.94 11,244 1215 6.95 C# .NET #8 7.13 30,596 1332 7.12 C# .NET #2 7.14 30,532 1343 7.12 spectral-norm source secs mem gz cpu secs C# .NET #5 0.90 34,704 764 3.27 Go 5.31 11,244 411 5.32 Go #4 1.42 11,244 548 5.67 Go #2 1.44 11,244 668 5.67 C# .NET #3 1.54 32,804 878 5.84 mandelbrot source secs mem gz cpu secs C# .NET 3.17 65,512 1974 12.37 C# .NET #9 3.17 65,492 816 12.37 Go #3 3.73 36,140 894 14.86 Go #4 3.73 36,116 905 14.87 C# .NET #5 4.12 63,172 839 16.13 Go 4.92 33,624 823 19.65 Go #2 6.76 33,928 837 26.97 Go #6 6.83 33,632 700 27.22 pidigits source secs mem gz cpu secs C# .NET #6 0.94 31,888 1168 0.92 C# .NET #5 0.93 33,596 977 0.94 Go #4 1.01 11,244 683 1.02 C# .NET #4 1.35 31,700 1121 1.34 Go 1.37 11,244 708 1.38 Go #3 1.63 11,244 603 1.66 Go #2 1.97 11,244 733 2.00 Go #8 2.46 11,244 720 2.46 Go #7 4.80 23,844 696 5.31 C# .NET #7 6.72 53,020 567 7.28 regex-redux source secs mem gz cpu secs C# .NET #8 1.44 389,260 1869 2.67 C# .NET #5 2.50 1,056,900 673 5.81 Go #5 4.14 302,280 810 6.25 Go #4 14.80 360,260 829 34.62 Go #3 27.89 368,528 829 67.15 Go 28.35 317,752 741 67.40 fasta source secs mem gz cpu secs Go 3.78 11,128 1053 3.78 Go #3 1.49 11,136 1358 4.10 Go #2 1.26 11,136 1404 4.26 C# .NET #5 1.49 52,708 1691 5.45 C# .NET 1.57 51,912 2098 5.78 k-nucleotide source secs mem gz cpu secs C# .NET 3.60 184,024 2044 11.81 C# .NET #6 5.98 190,172 1603 15.84 Go #7 7.48 166,412 1607 28.68 Go #6 7.96 148,080 1590 29.25 Go #3 8.28 148,412 1722 29.93 Go #4 9.50 142,624 1543 31.55 reverse-complement source secs mem gz cpu secs C# .NET #8 0.55 926,208 2637 1.26 Go #2 1.76 814,544 611 1.80 Go #3 1.96 814,352 605 2.00 Go #6 1.33 1,278,596 1338 2.46 C# .NET #5 2.81 1,025,440 1613 3.76 C# .NET #6 1.58 1,026,664 1621 3.78 C# .NET #7 1.92 954,396 1310 5.06 Go #5 Bad Output Go Failed binary-trees source secs mem gz cpu secs C# .NET #7 4.83 1,605,316 694 15.63 C# .NET #2 4.90 1,757,904 705 15.94 C# .NET #3 5.25 2,092,160 676 16.83 C# .NET 5.28 2,145,644 657 17.22 Go #6 27.82 410,808 611 28.59 Go #5 14.70 406,544 950 57.87 Go #2 14.69 642,688 666 58.49 Go #3 15.07 342,008 799 58.61 Go #7 33.37 247,824 525 60.85 Go 34.62 236,728 482 61.41 Go go version go1.20 linux/amd64 GOAMD64=v2 C# .NET .NET SDK 7.0.200 Host Version: 7.0.3 Commit: 0a2bda10e8 <ServerGarbageCollection>true all Go programs & measurements all C# .NET programs & measurements