The Computer Language
24.09 Benchmarks Game

Swift versus C# aot fastest performance

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
source secs mem gz cpu secs
C# aot #8 2.14 19,680 1485 8.46
C# aot #2 31.02 19,680 584 31.03
Swift #3 8.04 19,808 1103 31.87
Swift 33.92 19,808 457 33.92
C# aot #9 8.99 19,680 1232 35.88
C# aot #6 9.14 19,680 1075 36.46
C# aot #3 11.44 19,680 1117 45.24
C# aot #7   Bad Output  
n-body
source secs mem gz cpu secs
C# aot #9 3.09 19,696 2480 3.10
C# aot #4 3.68 19,684 2137 3.69
C# aot #7 4.74 19,696 1715 4.75
C# aot #6 4.76 19,696 1754 4.77
Swift #4 5.50 19,808 1361 5.50
Swift #5 5.52 19,808 1372 5.52
Swift #7 5.53 19,936 1333 5.53
Swift #6 5.98 19,808 1200 5.98
Swift #8 6.02 19,936 1688 6.01
C# aot #3 6.69 19,696 1311 6.70
C# aot #2 6.98 19,696 1350 6.98
C# aot #8 6.98 19,696 1339 6.99
C# aot 7.59 19,696 1424 7.60
Swift #2 10.00 19,808 1198 9.99
Swift #3 203.40 19,808 1210 203.40
Swift #9 287.22 19,808 1532 287.20
spectral-norm
source secs mem gz cpu secs
C# aot #5 0.74 19,728 776 2.89
Swift 5.33 19,808 444 5.33
C# aot 5.33 19,728 480 5.34
C# aot #2 1.45 19,728 1084 5.70
Swift #3 1.44 19,808 607 5.70
C# aot #3 1.47 19,728 890 5.78
mandelbrot
source secs mem gz cpu secs
Swift #7 1.34 47,104 1147 5.30
Swift #6 1.45 50,048 1147 5.76
C# aot #7 2.96 35,840 915 11.79
C# aot #9 3.06 43,008 822 12.13
C# aot 3.05 43,008 1980 12.14
C# aot #5 4.01 44,032 851 15.88
Swift 26.46 19,808 400 26.46
C# aot #3 6.68 45,056 722 26.54
Swift #5 7.24 43,520 665 27.01
C# aot #2 45.24 19,680 504 45.25
Swift #3   Bad Output  
pidigits
source secs mem gz cpu secs
Swift #2 0.75 19,808 606 0.75
C# aot #6 0.89 19,696 1182 0.89
C# aot #4 5.45 19,696 1135 5.46
C# aot #7 6.34 29,272 579 6.82
C# aot #5 120.10 19,696 990 120.09
regex-redux
source secs mem gz cpu secs
C# aot #8 1.37 365,468 1881 2.58
C# aot 12.32 817,792 641 12.34
C# aot #5 3.96 831,232 679 13.24
C# aot #4 9.01 928,896 854 31.21
Swift #2 35.87 684,700 678 35.87
Swift 19.32 889,932 721 36.83
Swift #4 19.56 933,748 751 37.94
fasta
source secs mem gz cpu secs
C# aot #9 1.15 19,988 1512 1.16
Swift #2 2.21 19,808 1952 3.91
C# aot #5 1.08 80,000 1702 4.20
Swift 5.13 19,808 1533 5.13
C# aot 1.40 29,824 2113 5.18
Swift #3 2.18 29,584 2097 5.36
k-nucleotide
source secs mem gz cpu secs
C# aot 3.13 161,152 2046 11.18
C# aot #6 5.38 163,244 1615 13.75
C# aot #7 42.20 737,372 1449 42.57
C# aot #4 11.69 752,004 1725 42.67
Swift #2 14.69 259,056 1373 55.81
Swift   Make Error  
reverse-complement
source secs mem gz cpu secs
Swift 1.96 796,840 1293 2.40
C# aot #7 1.30 909,056 1312 3.62
C# aot 3.49 777,932 1130 3.66
C# aot #6 1.67 1,006,336 1627 4.06
C# aot #5 2.92 1,003,520 1620 4.60
C# aot #3 7.90 1,549,580 934 11.73
C# aot #8   Bad Output  
binary-trees
source secs mem gz cpu secs
C# aot #3 4.46 2,022,536 688 14.37
C# aot #2 4.49 1,657,924 717 14.75
C# aot #7 4.55 1,674,128 706 14.79
C# aot 4.60 1,811,480 668 15.44
Swift #5 14.19 736,000 813 42.12
Swift #2 13.66 705,408 822 44.06
Swift #3 13.65 705,408 868 44.22
Swift 20.57 735,360 720 61.12
Swift #4 19.79 705,408 772 63.20
C# aot #8   Make Error  
Swift #9   Make Error  
Swift

Swift version 5.10.1
(swift-5.10.1-RELEASE)

C# aot

.NET SDK 8.0.301
Host Version: 8.0.6
Commit: 3b8b000a0e

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