
När jag började programmera så var Fortran fortfarande relativt vanligt, även om det mer eller mindre var på väg ut. Hur som helst så testades det ofta mot många modernare språk och i stort sett varenda gång vann Fortran iallafall när det gällde prestanda. Däremot är det ett rätt klumpigt språk att göra många andra saker med och det är definitivt inte lika bra som C att skriva systemnära saker i, även om det iofs till viss del funkar det med.
Nåväl nu fick jag för mig att göra en snabbtest igen, för att se om C hade utvecklats och blivit snabbare än Fortran nu.
För testet använde jag "gcc" som C-kompilator och "gfortran" som Fortran-kompilator och till saken hör faktiskt att gfortran numera är en del av gcc, så att så sett borde C och Fortran hamna väldigt nära varandra, kanske med ett litet plus för C som antagligen är det som är mest genomjobbat i gcc.
Som testprogram använde jag bara en liten enkel snurra för att testa prestanda under enklast möjliga former.
Koden för C-programmet var:
Kod: Markera allt
main()
{
int i;
for(i=0;i<2147483647;i++);
}
Kod: Markera allt
integer i
do i=0,2147483647,1
end do
end
Tiderna jag fick fram för att köra respektive program var:
Ganska ordentligt mycket snabbare för Fortran än för C. De här tiderna ovan är uppmätta med Ubuntu igång som vanligt, men jag gjorde testet i singleuser-mode också, dvs. gjorde en recovery-boot och hoppade ut till rootprompt utan nätverk. Resultatet blev exakt detsamma då, även om båda programmen gick snabbare då, så blev skillnaden ungefär densamma.C-programmet:
Real = 139,790 s
User = 133,930 s
Sys = 0,510 s
Fortran-programmet:
Real = 112,300 s
USer = 108,530 s
Sys = 0,500 s
Så... Fortran is still alive and kicking...
