The Computer Language
25.02 Benchmarks Game

C# naot versus Java naot

How the programs are written matters! 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
  elapsed       Mean or 95% CI
source secs mem gz make cpu secs
* C# naot #5 2.16 6,713 1485 24.43 8.58
C# naot #2 31.30 6,001 584 23.80 31.29
* C# naot #9 8.11 6,377 1232 25.65 32.35
Java naot #3 35.64 11,809 1264 93.87 35.64
Java naot 9.07 12,694 1289 94.68 35.94
C# naot #6 10.14 6,799 1075 24.13 40.45—40.53
C# naot #3 11.01 6,472 1117 23.77 43.53—43.61
Java naot #2 44.40 10,772 520 96.06 44.41—44.45
C# naot #8 44.63 6,091 519 24.31 44.63
Java naot #8 51.31 11,039 517 94.87 51.30
n-body
  elapsed       Mean or 95% CI
source secs mem gz make cpu secs
* C# naot #9 3.13 6,087 2480 24.34 3.12
* C# naot #4 3.70 6,078 2137 24.03 3.70
* C# naot #7 4.74 6,091 1715 23.78 4.74
* C# naot #6 4.77 6,115 1754 23.74 3.92—6.97
Java naot #4 6.01 15,213 1495 143.53 6.01
C# naot #3 6.67 6,095 1311 23.76 6.65—6.70
Java naot #3 6.74 15,479 1436 145.21 6.74
Java naot #2 6.75 15,483 1430 142.57 6.74
C# naot #2 6.81 5,898 1339 24.15 6.81
C# naot #8 7.02 5,833 1335 23.65 7.01
Java naot 7.14 17,842 1437 143.68 7.14
Java naot #8 7.18 15,483 1322 144.80 7.18
Java naot #5 7.21 15,282 1435 144.21 7.22
C# naot #0 7.46 6,107 1342 23.74 7.46
C# naot 7.46 6,124 1424 24.21 7.45
spectral-norm
  elapsed       Mean or 95% CI
source secs mem gz make cpu secs
* C# naot #5 0.74 8,057 776 24.00 2.88
C# naot #8 5.35 6,820 441 24.29 5.34
Java naot 5.35 18,485 521 145.31 5.34
Java naot #8 5.34 16,253 453 143.46 5.34
Java naot #2 1.45 19,415 956 143.96 5.70
Java naot #3 1.46 21,246 762 147.49 5.71
C# naot #2 1.47 6,644 1084 24.38 5.72
C# naot #3 1.48 6,808 890 23.72 5.80
mandelbrot
  elapsed       Mean or 95% CI
source secs mem gz make cpu secs
* C# naot #7 2.96 39,088 915 24.73 11.74
* C# naot #9 3.77 38,797 822 27.91 14.95
* C# naot 3.76 39,240 1980 24.86 14.95
Java naot #6 3.94 45,265 808 95.80 15.63
Java naot #4 4.25 76,661 667 97.10 15.75
Java naot #2 3.99 45,236 802 95.53 15.81
C# naot #5 4.02 40,743 851 27.06 15.90
C# naot #8 25.58 6,115 492 24.73 25.55—25.66
C# naot #3 6.69 39,715 722 24.95 26.53
Java naot #8 28.53 11,252 441 95.29 28.54
Java naot 30.53 15,221 671 146.09 30.53
Java naot #3 7.78 49,762 910 147.17 30.95
C# naot #2 47.60 6,148 504 24.02 47.84—48.30
fasta
  elapsed       Mean or 95% CI
source secs mem gz make cpu secs
C# naot #9 1.16 6,218 1512 24.53 1.16
Java naot #6 1.10 17,334 2549 97.72 3.13
Java naot #4 3.64 11,084 1528 97.22 3.64
Java naot #5 1.12 17,580 2478 94.92 3.80
C# naot #5 1.14 34,853 1702 24.14 4.34—4.48
C# naot 1.61 11,055 2113 24.61 5.65—5.71
Java naot #2 5.69 11,006 1259 98.09 5.69
C# naot #8 6.60 8,823 904 23.99 6.30
Java naot #8 10.78 62,452 894 97.74 10.80—10.94
k-nucleotide
  elapsed       Mean or 95% CI
source secs mem gz make cpu secs
C# naot 3.12 160,424 2046 27.36 10.70—10.91
C# naot #6 5.02 158,015 1615 26.90 13.07—13.88
Java naot #6 8.32 325,120 1614 144.00 28.41—28.47
Java naot #3 8.35 324,473 1642 146.37 28.48—28.52
Java naot #4 29.05 161,108 1887 146.45 29.20—29.56
Java naot #5 14.43 172,257 2225 143.84 36.09—37.17
C# naot #4 13.01 523,211 1725 27.45 45.70—45.82
C# naot #7 48.00 593,142 1449 23.68 48.44—48.60
C# naot #8 83.91 1,354,269 736 24.68 75.78—77.28
Java naot #8 108.95 594,534 786 146.34 109.16—109.81
Java naot   Empty  
reverse-complement
  elapsed       Mean or 95% CI
source secs mem gz make cpu secs
C# naot 3.37 637,997 1130 24.13 3.40—3.44
C# naot #5 2.74 1,027,035 1620 24.63 3.76
C# naot #7 1.56 774,136 1312 23.76 4.14—4.23
C# naot #6 1.81 1,029,992 1627 24.50 4.27—4.31
Java naot #6 3.87 2,049,520 760 96.54 4.59
Java naot #5 5.78 781,451 1115 95.90 5.78
Java naot #4 6.37 1,554,502 656 96.72 6.38
C# naot #3 8.76 1,236,947 934 23.97 13.32—13.49
Java naot #3   Bad Output  
Java naot #7   Bad Output  
C# naot #9   Bad Output  
binary-trees
  elapsed       Mean or 95% CI
source secs mem gz make cpu secs
Java naot #3 4.84 296,223 546 95.62 4.86—4.94
Java naot #6 5.05 294,187 535 96.50 5.09—5.17
Java naot #2 5.12 286,675 558 96.82 5.16—5.26
Java naot #4 5.55 305,353 846 95.40 5.54—5.72
Java naot #7 3.94 337,699 841 101.24 7.30—7.49
Java naot #8 7.75 291,021 596 100.20 7.77—7.81
C# naot #8 16.82 834,404 601 27.35 17.17—17.49
C# naot #7 6.22 1,115,476 706 23.97 17.09—17.67
C# naot #2 6.22 1,018,946 717 23.74 17.12—17.72
C# naot #3 6.71 2,829,128 688 23.94 18.09—18.62
C# naot 6.80 2,819,092 668 24.30 18.92—19.25
C# naot #6   Empty  
pidigits
  elapsed       Mean or 95% CI
source secs mem gz make cpu secs
* C# naot #6 0.75 7,905 1182 23.89 0.75
* C# naot #4 4.54 8,053 1135 28.23 4.53
C# naot #7 11.42 11,723 579 24.08 8.23—9.42
Java naot 8.42 62,415 807 96.29 8.45
* C# naot #5 99.09 8,466 990 24.29 99.08—99.12
Java naot #2   Empty  
Java naot #3   Empty  
regex-redux
  elapsed       Mean or 95% CI
source secs mem gz make cpu secs
C# naot #2 1.36 320,512 1881 25.36 2.55
C# naot 10.69 582,550 641 27.07 10.70—10.79
C# naot #5 3.25 596,599 679 26.47 10.73—10.77
Java naot 11.28 271,626 875 105.78 20.64—20.75
Java naot #6 7.56 456,479 746 102.10 20.98—21.02
Java naot #3 7.47 368,591 935 101.59 21.06—21.12
C# naot #4 9.81 743,510 854 26.94 32.95—33.06
Java naot #2   Empty  
C# naot

.NET SDK 9.0.100
Host Version: 9.0.0
Commit: 9d5a6a9aa4

<OutputType>Exe
<TargetFramework>net9.0
<ImplicitUsings>enable
<Nullable>enable
<AllowUnsafeBlocks>true
<ServerGarbageCollection>true
<ConcurrentGarbageCollection>true
<PublishAot>true
<OptimizationPreference>Speed
<IlcInstructionSet>native

Java naot

native-image 23.0.2 2025-01-21
GraalVM Runtime Environment
Oracle GraalVM 23.0.2+7.1