Ho scritto un po di “Hello World!” in vari linguaggi, e usato time per verificarne i tempi di esecuzione.
La macchina era completamente scarica, e i processi venivano lanciati 3 volte consecutivamente da uno script bash (posto che li lanciavo da shell…)
Linguaggio | Prima prova | Seconda prova | Terza prova |
---|---|---|---|
C | 0m0.001s | 0m0.001s | 0m0.001s |
Awk | 0m0.002s | 0m0.001s | 0m0.001s |
PHP | 0m0.028s | 0m0.033s | 0m0.041s |
Perl | 0m0.005s | 0m0.004s | 0m0.004s |
Python | 0m0.020s | 0m0.026s | 0m0.030s |
Ruby | 0m0.009s | 0m0.009s | 0m0.007s |
Bash | 0m0.007s | 0m0.007s | 0m0.008s |
Naturalmente i valori sono puramente indicativi, e per cercare di migliorare un po l’output, ho pensato di fare un ciclo for da 100 “Hello World!” per vedere come cambiano i tempi di esecuzione.
Linguaggio | Prima prova | Seconda prova | Terza prova |
---|---|---|---|
C | 0m0.001s | 0m0.001s | 0m0.001s |
Awk | 0m0.002s | 0m0.001s | 0m0.001s |
PHP | 0m0.028s | 0m0.028s | 0m0.029s |
Perl | 0m0.006s | 0m0.003s | 0m0.004s |
Python | 0m0.020s | 0m0.018s | 0m0.019s |
Ruby | 0m0.007s | 0m0.008s | 0m0.006s |
Bash | 0m0.009s | 0m0.010s | 0m0.009s |
Ovviamente 100 iterazioni sono una bazzecola per un computer, e quindi passiamole a 10.000.
Linguaggio | Prima prova | Seconda prova | Terza prova |
---|---|---|---|
C | 0m0.002s | 0m0.002s | 0m0.001s |
Awk | 0m0.006s | 0m0.008s | 0m0.006s |
PHP | 0m0.035s | 0m0.033s | 0m0.034s |
Perl | 0m0.006s | 0m0.006s | 0m0.006s |
Python | 0m0.032s | 0m0.032s | 0m0.032s |
Ruby | 0m0.035s | 0m0.033s | 0m0.033s |
Bash | 0m0.155s | 0m0.162s | 0m0.158s |
Dovrei inventarmi qualcosa di computazionalmente piu pesante, tipo l’ordinamento di una matrice di dati, ma in questo momento comincio ad avere sonno, e non ne ho voglia. Per oggi basta cosi 🙂
Una prova un po piu esaustiva, la si può ad ogni modo reperire su http://scutigena.sourceforge.net/ e su http://shootout.alioth.debian.org/