C# .NET versus Java 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 C# .NET #6 9.16 30,572 1068 36.34 Java #3 40.36 39,932 1257 40.43 Java 10.71 40,324 1282 42.25 Java #2 46.85 38,492 514 46.91 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 Java #5 6.77 40,632 1429 6.82 C# .NET #3 6.89 30,564 1305 6.87 Java #4 6.86 40,516 1489 6.89 C# .NET #8 7.13 30,596 1332 7.12 C# .NET #2 7.14 30,532 1343 7.12 Java #2 7.32 40,508 1424 7.37 Java #3 7.38 40,492 1430 7.43 Java 7.76 40,724 1430 7.80 spectral-norm source secs mem gz cpu secs C# .NET #5 0.90 34,704 764 3.27 C# .NET #3 1.54 32,804 878 5.84 Java #3 1.54 42,324 756 5.93 Java 7.02 41,448 514 7.09 Java #2 2.39 41,092 950 9.25 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 Java #4 4.39 101,236 660 16.12 C# .NET #5 4.12 63,172 839 16.13 Java #2 4.11 83,924 796 16.21 Java #6 4.27 84,532 802 16.86 Java 25.66 40,860 665 25.73 Java #3 7.37 88,056 903 29.24 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 Java #3 0.92 38,380 764 0.95 C# .NET #4 1.35 31,700 1121 1.34 Java #2 1.34 41,352 938 1.42 C# .NET #7 6.72 53,020 567 7.28 Java 7.44 430,616 800 8.45 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 Java 8.58 767,552 868 16.68 Java #6 5.40 637,728 740 17.08 Java #3 5.45 736,544 929 17.42 fasta source secs mem gz cpu secs Java #4 3.17 40,400 1524 3.27 Java #6 1.16 46,068 2543 3.65 Java #5 1.23 46,180 2473 3.79 Java #2 4.32 44,708 1257 4.45 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 Java 5.03 361,196 1812 16.40 Java #6 7.17 357,700 1607 25.04 Java #3 7.12 357,568 1635 25.06 Java #4 35.38 201,052 1882 35.83 Java #5 18.82 208,376 2219 40.84 reverse-complement source secs mem gz cpu secs C# .NET #8 0.55 926,208 2637 1.26 Java #6 3.02 2,027,152 752 3.69 C# .NET #5 2.81 1,025,440 1613 3.76 C# .NET #6 1.58 1,026,664 1621 3.78 Java #5 4.46 1,094,060 1108 4.58 C# .NET #7 1.92 954,396 1310 5.06 Java #4 5.51 1,886,052 651 5.62 Java #7 24.15 1,032,956 1647 6.20 Java #3 Bad Output Java #8 Bad Output binary-trees source secs mem gz cpu secs Java #4 4.47 2,116,292 840 5.15 Java #6 4.88 2,058,280 529 5.59 Java #3 4.91 2,101,240 540 5.61 Java #2 5.05 2,095,888 552 5.73 Java #7 2.52 1,726,148 835 7.89 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 C# .NET .NET SDK 7.0.200 Host Version: 7.0.3 Commit: 0a2bda10e8 <ServerGarbageCollection>true Java openjdk 20 2023-03-21 OpenJDK Runtime Environment (build 20+36-2344) OpenJDK 64-Bit Server VM (build build 20+36-2344 mixed mode, sharing) all C# .NET programs & measurements all Java programs & measurements