The Computer Language
23.03 Benchmarks Game

C++ g++ versus Rust 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
Rust #6 3.51 11,036 1253 13.93
C++ g++ #7 14.04 10,912 1150 14.04
Rust #4 7.21 10,932 1020 28.34
Rust #5 7.77 10,932 1016 30.49
C++ g++ #5 7.99 10,936 980 31.23
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
Rust #2 17.99 11,036 1191 70.95
n-body
source secs mem gz cpu secs
C++ g++ #0 2.14 10,960 1927 2.14
Rust #9 2.81 11,068 1874 2.81
Rust #7 3.27 11,068 1753 3.27
Rust #6 3.92 11,068 1790 3.92
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
C++ g++ #4 5.44 10,960 1428 5.44
Rust #3 5.63 11,068 1540 5.63
Rust 5.63 11,068 1480 5.63
C++ g++ #6 5.70 10,960 1668 5.70
C++ g++ #3 5.76 10,960 1396 5.76
C++ g++ 5.97 10,960 1659 5.97
Rust #2 5.98 11,068 1805 5.98
Rust #8 6.01 11,068 1767 6.01
Rust #5 6.12 11,068 2220 6.11
Rust #4 6.20 11,068 1803 6.20
C++ g++ #8 6.53 10,960 1517 6.53
C++ g++ #5 6.89 11,016 1538 6.88
spectral-norm
source secs mem gz cpu secs
C++ g++ #6 0.71 10,984 1044 2.84
Rust #6 0.71 11,124 1126 2.84
Rust #7 0.72 11,128 932 2.84
Rust #5 0.72 11,124 1055 2.84
Rust #4 0.72 11,124 817 2.84
Rust #2 0.72 11,124 1110 2.85
Rust 0.72 11,124 1254 2.85
Rust #3 0.78 11,124 1053 3.07
C++ g++ #5 1.32 10,984 1044 5.25
C++ g++ 5.36 10,984 452 5.36
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
Rust #4 1.01 32,380 1295 3.99
Rust #6 1.06 34,120 1332 4.18
Rust #5 1.12 33,868 719 4.41
Rust #3 1.15 13,452 1007 4.58
Rust #7 1.42 32,124 757 5.64
Rust #8 1.42 32,176 763 5.64
Rust 2.05 38,724 868 8.09
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
C++ g++ #3 28.09 10,956 414 28.09
pidigits
source secs mem gz cpu secs
Rust #4 0.71 11,068 799 0.71
C++ g++ #5 0.87 10,956 798 0.87
Rust #2 0.88 11,068 1306 0.88
Rust #3 0.88 11,068 1366 0.88
C++ g++ #4 0.89 10,956 513 0.88
Rust 0.89 11,068 1420 0.88
regex-redux
source secs mem gz cpu secs
Rust #6 1.34 152,724 986 1.80
Rust #5 1.40 204,604 771 1.82
Rust #4 1.43 204,656 765 1.85
Rust 1.46 153,312 804 1.87
Rust #3 1.42 205,228 719 1.88
Rust #2 1.50 153,320 701 1.90
Rust #7 0.78 149,524 2458 1.99
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
C++ g++ #4   Make Error  
fasta
source secs mem gz cpu secs
C++ g++ #8 0.77 10,944 2751 1.52
Rust #7 0.76 11,068 2529 1.52
C++ g++ #2 1.87 10,940 1127 1.86
C++ g++ 1.96 10,936 1057 1.96
Rust #3 2.00 11,036 1233 2.00
C++ g++ #3 2.64 10,940 1307 2.64
Rust #5 0.90 11,060 1961 3.08
Rust #2 0.90 11,068 1906 3.16
C++ g++ #4 3.34 10,940 1287 3.34
Rust #4 3.46 123,660 939 3.46
Rust #6 3.50 123,660 955 3.50
Rust #8 0.92 11,068 1946 3.50
C++ g++ #5 1.04 10,940 2344 3.66
C++ g++ #6 1.03 10,936 2324 3.83
Rust 4.52 11,036 1237 4.52
C++ g++ #7   Make Error  
k-nucleotide
source secs mem gz cpu secs
C++ g++ #2 1.96 156,360 1631 5.87
Rust #7 2.88 133,236 1578 9.14
Rust #8 3.56 137,632 1543 10.34
Rust #6 2.88 158,788 1691 10.48
Rust #5 4.08 137,648 1739 11.99
C++ g++ #3 4.16 165,784 1276 13.84
C++ g++ 6.80 756,220 1446 14.43
Rust #2 6.30 137,548 1347 16.69
Rust #9 6.54 136,008 1841 17.81
Rust #4 6.95 136,744 1749 18.88
Rust 21.93 155,840 1078 65.94
reverse-complement
source secs mem gz cpu secs
C++ g++ #2 0.68 499,568 2093 0.68
Rust 0.47 498,844 3040 0.77
Rust #2 0.80 995,004 1330 1.45
Rust #3 0.81 995,004 1097 1.50
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
Rust #5 1.08 198,984 765 3.82
C++ g++ #5 1.13 200,428 885 4.05
C++ g++ #9 1.45 135,832 809 4.10
Rust #2 1.19 200,532 721 4.27
C++ g++ #6 1.80 265,520 844 4.39
Rust #4 1.28 198,772 756 4.62
C++ g++ #3 1.80 265,092 945 4.69
Rust #3 1.36 198,464 754 4.93
C++ g++ #8 2.14 265,536 820 5.12
Rust 2.10 132,828 751 7.39
C++ g++ 2.65 1,946,308 754 9.06
C++ g++ #2 23.13 265,616 508 23.13
C++ g++ #4   Make Error  
C++ g++

Ubuntu 12.2.0-3ubuntu1

Rust

1.67.0
(fc594f156
2023-01-24)
LLVM version: 15.0.6