The Computer Language
Benchmarks Game

C# .NET Core versus Java fastest programs

Back in April 2010, Russ Cox charitably suggested that only fannkuch-redux, fasta, k-nucleotide, mandlebrot, nbody, reverse-complement and spectral-norm were close to fair comparisons. As someone who implemented programming languages, his interest was "measuring the quality of the generated code when both compilers are presented with what amounts to the same program."

Differences in approach - to memory management, parallel programming, regex, arbitrary precision arithmetic, implementation technique - don't fit in that kind-of fair comparison — but we still have to deal with them.

These are only the fastest programs. There may be additional measurements for programs which seem more-like a fair comparison to you. Always look at the source code.

regex-redux
source secs mem gz busy cpu load
C# .NET Core 2.17 267,768 1869 4.26 36% 30% 84% 46%
Java 10.25 634,884 740 30.23 68% 95% 67% 65%
k-nucleotide
source secs mem gz busy cpu load
C# .NET Core 5.74 183,856 2044 18.58 81% 92% 77% 73%
Java 9.06 435,240 1812 28.35 98% 73% 72% 69%
pidigits
source secs mem gz busy cpu load
C# .NET Core 2.11 36,632 973 2.21 99% 2% 1% 3%
Java 3.07 39,184 938 3.29 99% 3% 4% 1%
mandelbrot
source secs mem gz busy cpu load
C# .NET Core 5.60 65,296 816 21.78 96% 97% 99% 96%
Java 6.90 78,956 796 27.14 99% 98% 98% 98%
fannkuch-redux
source secs mem gz busy cpu load
C# .NET Core 16.50 31,284 1189 65.39 99% 99% 99% 100%
Java 17.93 34,616 1282 70.89 98% 100% 98% 99%
reverse-complement
source secs mem gz busy cpu load
C# .NET Core 3.11 1,029,996 1621 7.76 75% 95% 41% 38%
Java 3.26 738,800 2183 7.49 44% 63% 73% 48%
spectral-norm
source secs mem gz busy cpu load
C# .NET Core 4.13 32,032 878 15.92 95% 98% 97% 95%
Java 4.20 36,636 950 16.37 97% 98% 97% 97%
n-body
source secs mem gz busy cpu load
C# .NET Core 21.82 33,956 1305 22.24 1% 1% 1% 100%
Java 21.91 35,356 1429 22.28 100% 0% 0% 1%
fasta
source secs mem gz busy cpu load
C# .NET Core 2.37 46,416 2098 8.53 88% 95% 89% 89%
Java 2.24 44,876 2473 6.13 18% 79% 79% 97%
binary-trees
source secs mem gz busy cpu load
C# .NET Core 8.95 890,228 810 31.11 85% 86% 90% 86%
Java 8.29 966,764 835 27.76 86% 80% 86% 83%
C# .NET Core

.NET Core SDK 3.0.100
Host Version: 3.0.0; Commit: 95a0a61858
<ServerGarbageCollection>true
<ConcurrentGarbageCollection>true

Java

openjdk 13 2019-09-17
OpenJDK Runtime Environment (build 13+33)
OpenJDK 64-Bit Server VM (build 13+33, mixed mode, sharing)