The Computer Language
25.02 Benchmarks Game

C gcc versus Classic Fortran

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 gcc #6 2.14 2,712 1582 2.68 8.44
* C gcc #4 14.05 2,351 1190 2.31 14.06
C gcc #5 7.28 2,949 917 2.17 28.32—28.45
C gcc #3 36.84 2,343 574 2.19 36.84—36.89
Classic Fortran 39.02 3,191 608 2.95 38.97—39.21
C gcc #8 39.34 2,343 483 2.20 39.52—40.22
C gcc 39.65 2,343 514 2.12 39.64—40.07
* C gcc #2 10.18 2,695 1563 2.51 39.98—40.15
Classic Fortran #3 10.15 12,329 1164 3.36 40.49
n-body
  elapsed       Mean or 95% CI
source secs mem gz make cpu secs
* C gcc #9 2.10 2,482 1639 2.99 2.10
* C gcc #4 4.06 2,499 1398 2.98 4.06
Classic Fortran #6 4.22 2,146 1530 2.93 4.23
C gcc #6 4.98 2,482 1186 2.33 4.99
C gcc #2 5.20 2,490 1270 2.43 5.20
C gcc 5.23 2,486 1179 2.58 5.23
C gcc #3 5.24 2,482 1214 2.42 5.24
Classic Fortran #2 5.39 2,146 1507 2.88 5.39
* C gcc #5 5.44 2,494 1436 2.31 5.44
Classic Fortran 5.45 2,142 1400 3.14 5.45
C gcc #8 5.54 2,486 1195 2.52 5.54
Classic Fortran #5 5.97 2,150 1669 3.04 5.99—6.10
Classic Fortran #4 6.18 2,146 1183 2.96 6.23
Classic Fortran #3 6.33 2,146 1311 3.03 6.36—6.40
C gcc #7 6.89 2,490 1250 2.32 6.90
spectral-norm
  elapsed       Mean or 95% CI
source secs mem gz make cpu secs
* C gcc #6 0.40 3,199 1203 3.38 1.60
Classic Fortran #2 2.68 4,239 520 3.16 2.67
* C gcc #5 0.72 3,858 576 2.52 2.86
Classic Fortran #3 0.72 5,259 644 3.06 2.86—2.91
* C gcc #7 0.72 4,067 906 3.21 2.86
* C gcc #4 0.72 3,719 1145 2.49 2.86
C gcc #8 5.41 3,219 389 2.42 5.41
C gcc #3 1.43 4,080 470 2.42 5.71
* C gcc #2   Empty  
mandelbrot
  elapsed       Mean or 95% CI
source secs mem gz make cpu secs
* C gcc #6 1.29 35,578 1147 2.64 5.11
Classic Fortran #7 1.44 79,483 965 2.98 5.64
C gcc #5 1.64 35,582 788 2.38 6.32
Classic Fortran #6 3.27 79,585 669 2.68 10.80
* C gcc #4 3.50 35,197 805 2.16 13.91
* C gcc #7 3.51 35,447 1000 2.60 13.94
* C gcc 3.50 35,017 828 2.23 13.94
* C gcc #3 3.55 34,873 769 2.26 14.12
C gcc #9 4.07 35,394 700 2.47 15.72
C gcc #8 25.17 2,355 412 2.29 25.18
Classic Fortran #4 10.40 79,577 626 2.70 26.84—26.88
Classic Fortran #5 45.35 45,691 528 2.56 45.36—45.41
fasta
  elapsed       Mean or 95% CI
source secs mem gz make cpu secs
C gcc #5 1.24 2,154 1286 2.42 1.25
Classic Fortran #4 2.06 2,142 1355 3.21 2.06
C gcc #2 2.77 2,204 1299 2.25 2.77
C gcc #6 0.95 3,748 1936 2.44 2.77—2.81
C gcc #7 0.83 4,514 2276 2.39 3.28
C gcc 3.71 2,421 1213 2.25 3.71
Classic Fortran #3 6.98 2,146 1217 2.98 7.05—7.16
Classic Fortran 7.19 2,142 1193 2.78 7.23—7.31
C gcc #8 8.27 2,195 839 2.20 8.31—8.37
C gcc #3   Empty  
C gcc #4   Empty  
k-nucleotide
  elapsed       Mean or 95% CI
source secs mem gz make cpu secs
C gcc 3.58 135,234 1512 2.82 12.06—12.40
Classic Fortran   Empty  
reverse-complement
  elapsed       Mean or 95% CI
source secs mem gz make cpu secs
* C gcc #7 0.44 514,208 1899 3.13 0.62
C gcc #9 0.49 514,159 1551 2.20 0.78
C gcc #6 0.97 693,969 828 2.26 1.37
C gcc #5 1.54 1,020,662 654 2.05 1.54
C gcc #2 1.07 1,021,755 757 2.15 1.59
* C gcc #4 3.70 514,077 716 2.22 3.71
Classic Fortran 4.24 1,012,376 1026 2.89 4.25
Classic Fortran #2 45.32 790,282 778 3.25 45.50—45.79
binary-trees
  elapsed       Mean or 95% CI
source secs mem gz make cpu secs
C gcc #2 1.56 174,780 816 3.21 4.30—4.45
C gcc #3 1.96 138,711 842 2.94 4.79—4.93
Classic Fortran #2 2.22 141,066 1155 2.78 6.99—7.03
C gcc #8 20.77 293,605 607 2.35 20.88—21.13
C gcc 21.21 272,065 660 2.37 21.39—21.70
C gcc #5 8.71 361,587 914 2.34 31.85—32.27
Classic Fortran 32.31 540,062 780 2.66 32.35—32.48
pidigits
  elapsed       Mean or 95% CI
source secs mem gz make cpu secs
C gcc #2 0.74 4,006 422 2.25 0.74
* Classic Fortran #4 0.74 5,399 987 2.35 0.74
C gcc 0.75 3,727 459 2.30 0.75
regex-redux
  elapsed       Mean or 95% CI
source secs mem gz make cpu secs
C gcc #5 0.81 157,463 1403 2.47 2.05
* Classic Fortran 0.98 179,618 2229 3.02 3.11—3.15
C gcc #2 3.22 106,713 1121 2.14 3.22
C gcc #4 0.97 157,417 1237 2.18 3.30
C gcc #3 1.73 107,401 1273 2.27 3.32
C gcc

gcc (Ubuntu 14.2.0-4ubuntu2) 14.2.0

Classic Fortran

Fortran Compiler Classic
2021.12.0 20240222