Ci siamo lasciati con un po' di teoria, quindi ora passiamo ad un piccolo test.
Ho scelto di scrivere uno stesso script con diversi linguaggi di programmazione. Ho scelto C, C++, Perl, PHP, Python.
script C (hello.c)
#include <stdio.h>compilato tramite gcc hello.c -o hello_c.o
main() {
int j,i;
j=10000000;
while (j>0) {
printf ("Hello world! $j\n");
j = j-1;
}
}
script C++ (hello.cpp)
#include <iostream>compilato tramite g++ hello.cpp -o hello_cpp.o
int main() {
int j,i;
j=10000000;
while (j>0) {
std::cout << "Hello world! " << j << std::endl;
j = j-1;
}
return 0;
}
script Perl (hello.pl)
$j=10_000_000;
while ($j>0) {
print "Hello world! $j\n";
$j -= 1;
}
script PHP (hello.php)
<?php
$j=10000000;
while ($j>0) {
print "Hello world! $j\n";
$j -= 1;
}
?>
script Python (hello.py - no bytecode)
j=10000000script Python (hello.pyc - bytecode)
while j>0:
print 'Hello world! ', j;
j = j-1;
import py_compile
py_compile.compile("hello.py")
Produce il byte code dello script precedente.
Tempi di esecuzione
Di seguito sono riassunti i tempi di esecuzione:
C -> time ./hello_c.o > /dev/nullNote:
real 0m0.818s
C++ -> time ./hello_cpp.o > /dev/null
real 0m5.885s
Perl -> time perl hello.pl > /dev/null
real 0m4.311s
PHP -> time php hello.php > /dev/null
real 0m10.390s
Python (no bc) -> time python hello.py > /dev/null
real 0m13.282s
Python (bc) -> time python hello.pyc > /dev/null
real 0m13.533s
Ovviamente questo e' soltanto un benchmark grossolano. Consiglio di non ritenerlo esaustivo, solo indicativo.
Nessun commento:
Posta un commento