The Computer Language
23.03 Benchmarks Game

F# .NET 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
F# .NET #6 8.33 106,496 1097 32.25
C# .NET #6 9.16 30,572 1068 36.34
F# .NET #5 9.75 111,368 912 38.19
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
F# .NET #6 5.02 108,192 1383 5.00
C# .NET #3 6.89 30,564 1305 6.87
F# .NET #3 6.91 106,624 1617 6.90
C# .NET #8 7.13 30,596 1332 7.12
C# .NET #2 7.14 30,532 1343 7.12
F# .NET #2 7.28 108,408 1381 7.26
F# .NET #4 7.40 108,620 1290 7.38
F# .NET #5 7.47 108,388 1351 7.45
F# .NET   Bad Output  
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
F# .NET #4 1.60 110,572 732 5.86
F# .NET #2 1.63 109,184 853 5.90
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
F# .NET #6 3.83 140,068 933 14.86
F# .NET 4.08 140,580 877 15.88
F# .NET #5 4.09 139,916 897 15.90
C# .NET #5 4.12 63,172 839 16.13
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
F# .NET #6 0.99 105,584 905 0.98
C# .NET #4 1.35 31,700 1121 1.34
F# .NET #4 1.39 106,688 874 1.39
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
F# .NET #6 2.45 1,131,324 611 5.76
C# .NET #5 2.50 1,056,900 673 5.81
F# .NET #7 4.66 1,325,080 599 6.52
fasta
source secs mem gz cpu secs
F# .NET #3 1.16 137,720 1350 4.13
F# .NET #4 1.29 201,344 1342 4.54
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
F# .NET #6 4.11 260,772 1907 12.92
C# .NET #6 5.98 190,172 1603 15.84
F# .NET #2 4.54 272,540 1926 15.96
reverse-complement
source secs mem gz cpu secs
C# .NET #8 0.55 926,208 2637 1.26
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
F# .NET #4   Timed Out  
F# .NET #5   Timed Out  
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
F# .NET #7 5.39 1,718,280 516 16.69
C# .NET #3 5.25 2,092,160 676 16.83
C# .NET 5.28 2,145,644 657 17.22
F# .NET

.NET SDK 7.0.102
Host Version: 7.0.2
Commit: d037e070eb
<ServerGarbageCollection>true

C# .NET

.NET SDK 7.0.200
Host Version: 7.0.3
Commit: 0a2bda10e8
<ServerGarbageCollection>true