The Computer Language
23.03 Benchmarks Game

Swift versus C++ g++ 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++ g++ #6 3.23 10,936 1528 12.80
C++ g++ #7 14.04 10,912 1150 14.04
C++ g++ #5 7.99 10,936 980 31.23
Swift #3 8.24 11,220 1097 32.62
Swift 34.60 11,220 451 34.59
C++ g++ #3 36.06 10,908 593 36.05
C++ g++ #2 9.51 10,912 1440 37.33
C++ g++ #4 9.82 10,912 1439 38.52
C++ g++ 10.39 10,912 1059 40.77
n-body
source secs mem gz cpu secs
C++ g++ #0 2.14 10,960 1927 2.14
C++ g++ #2 4.44 10,960 1879 4.44
C++ g++ #7 4.44 10,960 1808 4.44
C++ g++ #9 4.88 10,960 1530 4.88
Swift #5 5.44 14,780 1365 5.43
C++ g++ #4 5.44 10,960 1428 5.44
Swift #7 5.44 14,792 1326 5.44
Swift #4 5.45 14,780 1355 5.45
C++ g++ #6 5.70 10,960 1668 5.70
C++ g++ #3 5.76 10,960 1396 5.76
Swift #8 5.92 14,820 1681 5.92
Swift #6 5.93 11,340 1194 5.93
C++ g++ 5.97 10,960 1659 5.97
C++ g++ #8 6.53 10,960 1517 6.53
C++ g++ #5 6.89 11,016 1538 6.88
Swift #3 8.06 11,340 1204 8.06
Swift #2 9.12 11,340 1192 9.12
Swift #9 285.30 14,892 1526 285.29
spectral-norm
source secs mem gz cpu secs
C++ g++ #6 0.71 10,984 1044 2.84
C++ g++ #5 1.32 10,984 1044 5.25
Swift 5.32 14,944 438 5.32
C++ g++ 5.36 10,984 452 5.36
Swift #3 1.43 11,344 601 5.68
C++ g++ #8 1.52 10,992 1278 6.09
mandelbrot
source secs mem gz cpu secs
C++ g++ 0.89 34,012 1791 3.46
C++ g++ #4 0.88 34,664 3542 3.48
C++ g++ #6 0.98 34,768 1002 3.88
Swift #7 1.40 46,628 1140 5.57
Swift #6 1.42 49,544 1141 5.64
C++ g++ #0 2.34 34,204 2739 9.28
C++ g++ #8 4.78 34,288 742 13.11
C++ g++ #5 13.35 33,504 590 13.35
C++ g++ #9 3.50 34,292 726 13.49
C++ g++ #7 3.49 34,304 1017 13.89
C++ g++ #2 16.91 34,008 692 16.90
Swift 25.99 11,340 394 25.98
Swift #5 7.29 43,012 659 26.91
C++ g++ #3 28.09 10,956 414 28.09
Swift #3   Bad Output  
pidigits
source secs mem gz cpu secs
C++ g++ #5 0.87 10,956 798 0.87
Swift #2 0.88 11,344 600 0.88
C++ g++ #4 0.89 10,956 513 0.88
regex-redux
source secs mem gz cpu secs
C++ g++ #6 1.13 275,984 2850 2.18
C++ g++ 3.55 211,848 656 3.55
C++ g++ #2 2.83 212,460 700 3.59
C++ g++ #5 3.78 215,276 852 4.49
C++ g++ #3 13.26 217,376 853 19.13
Swift #2 34.87 683,772 671 34.85
Swift 18.89 883,576 715 35.94
Swift #4 18.76 962,572 745 36.82
C++ g++ #4   Make Error  
fasta
source secs mem gz cpu secs
C++ g++ #8 0.77 10,944 2751 1.52
C++ g++ #2 1.87 10,940 1127 1.86
C++ g++ 1.96 10,936 1057 1.96
C++ g++ #3 2.64 10,940 1307 2.64
Swift #2 2.25 11,340 1945 3.05
C++ g++ #4 3.34 10,940 1287 3.34
C++ g++ #5 1.04 10,940 2344 3.66
C++ g++ #6 1.03 10,936 2324 3.83
Swift 4.51 11,340 1526 4.51
Swift #3 1.39 27,800 2090 4.51
C++ g++ #7   Make Error  
k-nucleotide
source secs mem gz cpu secs
C++ g++ #2 1.96 156,360 1631 5.87
C++ g++ #3 4.16 165,784 1276 13.84
C++ g++ 6.80 756,220 1446 14.43
Swift #2 13.63 258,044 1367 52.21
Swift   Make Error  
reverse-complement
source secs mem gz cpu secs
C++ g++ #2 0.68 499,568 2093 0.68
Swift 1.85 795,972 1286 2.30
C++ g++ #6 3.03 1,515,936 1832 4.05
C++ g++ 6.35 979,820 592 6.35
C++ g++ #5 35.73 771,156 720 35.72
C++ g++ #3   Bad Output  
binary-trees
source secs mem gz cpu secs
C++ g++ #7 0.94 201,600 890 3.31
C++ g++ #5 1.13 200,428 885 4.05
C++ g++ #9 1.45 135,832 809 4.10
C++ g++ #6 1.80 265,520 844 4.39
C++ g++ #3 1.80 265,092 945 4.69
C++ g++ #8 2.14 265,536 820 5.12
C++ g++ 2.65 1,946,308 754 9.06
C++ g++ #2 23.13 265,616 508 23.13
Swift #5 13.35 735,440 806 39.79
Swift #3 13.06 704,876 862 41.74
Swift #2 13.04 704,780 816 42.00
Swift 19.62 734,844 714 58.29
Swift #4 18.96 704,904 765 60.01
Swift #9   Make Error  
C++ g++ #4   Make Error  
Swift

Swift version 5.8-dev
(LLVM 08f7fecaf6cedb8,
Swift 24fe6ae8532db5d)

C++ g++

Ubuntu 12.2.0-3ubuntu1