View Full Version : gcc 4.0 benchmark?
Da qualche giorno e' uscito il gcc 4.0, volevo sapere se qualcuno ha fatto qualche benchmark per vedere come si comporta sui tempi di compilazione (eh si ho una gentoo :D ) e sulla velocita' degli eseguibili che crea....
Esempio, ricompilando tutto il mio sistema (facciamo finta che si possa visto che ho letto in giro che ci sono parecchi programmi che non compilano con il gcc 4) si noteranno differenze?
Ciao!
Questa sera faccio un po di prove e se ho qualcosa di interessante ve lo scrivo. Sono curioso di vedere cosa hanno cambiato dal gcc 3.3.
ciao ;)
Questa sera faccio un po di prove e se ho qualcosa di interessante ve lo scrivo. Sono curioso di vedere cosa hanno cambiato dal gcc 3.3.
ciao ;)
sono proprio curioso... fammi sapere.. (magari se mi salta il pirlo provo pure io)
Ciao!
Per ora ho fatto un po di prove con un mio programmino per calcolare hash. L'algoritmo è quello classico del md2. Il file usato è un avi di 152137068 byte. Ho eseguito tutte le prove che richiedevano la misurazione del tempo tre volte, dopo di che ho preso il valore piu basso. Per misurare i tempi ho usato time. Per le prove ho usato i gcc 3.3.5, gcc-4.0.0, tcc 0.9.22.
Prima prova: Senza ottimizazioni (-O0)
T.Comp Byte T.Exec
gcc-3.3 -O0 : 0m0.473s : 26017 : 1m41.967s
gcc-4.0 -O0 : 0m0.536s : 26461 : 1m34.756s
tcc -O0 : 0m0.094s : 25316 : 2m17.727s
Tcc stravince nel tempo di compilazione e pure per quanto riguarda la dimensione del eseguibile. gcc 3.3 batte gcc 4.0 sia nel tempo per compilare che nella dimensione, anche se di poco. In quanto a velocita del eseguibile gcc 4.0 batte di almeno 7 secondi gcc 3.3 e 43 secondi tcc.
i risultati dei test di tcc sono tutti identici (strano sembra accetare -Ox ma non cambia niente) quindi li ho omessi.
Seconda prova: Ottimizazioni per lo spazio (-Os)
T.Comp Byte T.Exec
gcc-3.3 -Os : 0m0.831s : 21678 : 0m55.191s
gcc-4.0 -Os : 0m0.858s : 21910 : 0m57.433s
Qui incominciano le stranezze. gcc 3.3 risulta migliore di gcc 4.0 in tutti i campi. specialmente riguardo il tempo di esecuzione.
Terza prova: Ottimizazioni al massimo (-O3)
T.Comp Byte T.Exec
gcc-3.3 -O3 : 0m0.995s : 23864 : 0m55.242s
gcc-4.0 -O3 : 0m1.042s : 23638 : 0m59.303s
Per entrambi i compilatori i valori sono peggiorati.
Quarta prova: CFLAGS personalizate
T.Comp Byte T.Exec
gcc-3.3 OPT : 0m1.087s : 25784 : 0m54.070s
gcc-4.0 OPT : 0m1.584s : 29974 : 0m54.046s
Anche in questo caso gcc vince come tempo di compilazione e dimensione del eseguibile. gcc 4.0 è stata la vera sorpresa, ben 8K di codice in piu rispetto a -Os e solo un guadagno di 3 secondo. per gcc 3.3 un guadagno di solo 1 secondo.
Ora provo con Lame e qualco'altro scritto in C. Poi provo a vedere come se la cava con il C++. Magari con progetti piu consistenti sopra le 10.000 linee di codice migliora qualcosa. Fino ad ora questo nuovo gcc è stata una vera delusione. :(
ciao ;)
Rieccomi con altri risultati con dei programmini un po piu consistenti. Ho scelto lame e live.com. Il primo è il piu famoso programma per comprimere gli mp3 scritto in C. Il secondo è una libreria in c++ che implementa vari protocolli multimediali come rtsp.
Lame
T.Comp Byte T.Exec
gcc 3.3 : 0m49.347s : 389118 : 0m50.521s
gcc 4.0 : 1m6.588s : 499738 : 0m48.867s
Le opzioni usate per compialre sono quelle di default di lame. gcc 3.3 batte nettamente il 4.0 per quanto riguarda il tempo richiesto per la compilazione. Se poi guardate la dimensione del eseguibile il 4.0 viene letteralmente umiliato, 108Kbyte in piu. Nella compressione di una traccia wav il binario di gcc 4.0 risulta invece piu veloce di circa 2 secondi.
T.Comp Byte T.Exec
gcc 4.0 : 0m21.197s : 382782 : 2m2.229s
Su irc mi è stato fatto notare che forse avrei potuto diminuire la differenza tra i due compilatori aggiungendo l'opzione -fno-var-tracking. Il tempo di compilazione si riduce ad 1/3 e il binario è piu piccolo di quello di gcc 3.3. Le prestazioni del eseguibile pero si sono piu che dimezzate.
Live.com
T.Comp Byte
gcc 3.3 : 0m51.522s : 705913
gcc 4.0 : 0m50.531s : 688770
per quanto riguarda questa libreria i risultati sono piuttosto allineati anche se g++ 4.0 risulta superiore sia nel tempo di compilazione che nel binario prodotto.
ciao ;)
DanieleC88
24-04-2005, 08:06
Veloce nella risposta e professionale nel contenuto: grande VICIUS!
Per adesso, comunque, credo sia troppo presto per fare confronti con gcc3/gcc4, visto che quest'ultimo è ancora una versione di "anteprima".
Veloce nella risposta e professionale nel contenuto: grande VICIUS!
Per adesso, comunque, credo sia troppo presto per fare confronti con gcc3/gcc4, visto che quest'ultimo è ancora una versione di "anteprima".
no, il 4.0 e' uscito ufficialmente!
http://gcc.gnu.org/
DanieleC88
24-04-2005, 15:14
no, il 4.0 e' uscito ufficialmente!
http://gcc.gnu.org/
Whoopss :fagiano:
Be', se è meglio gcc 3, resto con la versione "vecchia" ;)
(che per me è nuova, visto che l'ho installata non troppo tempo fa)
VegetaSSJ5
24-04-2005, 16:20
ragazzi ma se il gcc 4.0 è peggiore in termini di tempo e spazio rispetto al 3.3 (io ho il 3.4) cos'hanno implementato in più rispetto alle versioni precedenti? :confused:
Pilucchino
24-04-2005, 16:47
Che ne dite di fare un confronto con i risultati ottenibili con VC++ su Windows XP?
Se siete curiosi posso occuparmene io.
Futuregames
27-04-2005, 15:22
Che ne dite di fare un confronto con i risultati ottenibili con VC++ su Windows XP?
Se siete curiosi posso occuparmene io.
vc++?? cosa centra? poi nn è standard
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.