In questa nuova rivoluzione Web chiamata per brevità HTML5, uno dei protagonisti è senza alcun dubbio il riesumato JavaScript. Tornato dalla tomba in cui sembrava essere stato sepolto per riportare nuova luce e dinamicità ai contenuti Web.
JavaScript, in quanto computazione client-side ha anche lo spiacevole effetto di condizionare le prestazioni di un sito e di scaricare il gravoso costo della sua esecuzione sui browser. Questa è la casus belli della JavaScript War che imperversa nei centri di sviluppo dei vari browser da qualche anno.
Iniziamo quindi ad analizzare la battaglia dei contendenti più accreditati: Firefox e Chrome.
Firefox
- Versione: 5.0
- Rendering: Geko 5.0
- Motore JavaScipt: SpiderMonkey
Chrome
- Versione: 13
- Rendering: WebKit 535.1
- Motore JavaScipt: V8 3.3.10.22
BENCHMARK 1 : SUNSPIDER 0.9.1
Il primo benchmark è SUNSPIDER di casa WebKit. Il test mi ha sorpreso perché Firefox risulta più performante di Chrome. Come potete vedere dal risultato (FROM è Firefox e TO è Chrome) la differenza è minima ma a favore di Firefox.
Risultato:
=============================================================================
** TOTAL **: *1.067x as slow* 735.1ms +/- 0.3% 784.3ms +/- 2.4% significant
=============================================================================
3d: *1.186x as slow* 102.4ms +/- 1.3% 121.4ms +/- 7.7% significant
cube: *1.082x as slow* 37.8ms +/- 2.1% 40.9ms +/- 7.2% significant
morph: *1.54x as slow* 18.6ms +/- 2.7% 28.7ms +/- 3.5% significant
raytrace: *1.126x as slow* 46.0ms +/- 0.7% 51.8ms +/- 16.3% significant
access: 1.47x as fast 99.7ms +/- 1.4% 67.8ms +/- 5.9% significant
binary-trees: 4.46x as fast 25.0ms +/- 3.0% 5.6ms +/- 12.3% significant
fannkuch: 1.70x as fast 42.6ms +/- 2.3% 25.0ms +/- 6.5% significant
nbody: *1.66x as slow* 15.0ms +/- 3.2% 24.9ms +/- 17.8% significant
nsieve: 1.39x as fast 17.1ms +/- 2.4% 12.3ms +/- 12.6% significant
bitops: *1.77x as slow* 45.5ms +/- 1.3% 80.7ms +/- 7.9% significant
3bit-bits-in-byte: *7.47x as slow* 1.7ms +/- 20.3% 12.7ms +/- 20.6% significant
bits-in-byte: 1.43x as fast 25.7ms +/- 1.3% 18.0ms +/- 9.5% significant
bitwise-and: *6.26x as slow* 4.3ms +/- 8.0% 26.9ms +/- 14.9% significant
nsieve-bits: *1.67x as slow* 13.8ms +/- 6.4% 23.1ms +/- 17.6% significant
controlflow: 3.06x as fast 34.3ms +/- 1.0% 11.2ms +/- 31.5% significant
recursive: 3.06x as fast 34.3ms +/- 1.0% 11.2ms +/- 31.5% significant
crypto: *1.090x as slow* 61.1ms +/- 1.2% 66.6ms +/- 12.4% significant
aes: *1.116x as slow* 25.1ms +/- 1.6% 28.0ms +/- 11.7% significant
md5: 1.124x as fast 22.6ms +/- 1.6% 20.1ms +/- 26.1% significant
sha1: *1.38x as slow* 13.4ms +/- 2.8% 18.5ms +/- 5.8% significant
date: *1.059x as slow* 114.0ms +/- 1.0% 120.7ms +/- 3.5% significant
format-tofte: 1.82x as fast 81.6ms +/- 0.9% 44.9ms +/- 5.8% significant
format-xparb: *2.34x as slow* 32.4ms +/- 1.9% 75.8ms +/- 3.7% significant
math: 1.33x as fast 73.5ms +/- 1.4% 55.3ms +/- 3.8% significant
cordic: 2.22x as fast 21.5ms +/- 1.8% 9.7ms +/- 6.1% significant
partial-sums: *1.046x as slow* 28.5ms +/- 1.8% 29.8ms +/- 4.2% significant
spectral-norm: 1.49x as fast 23.5ms +/- 2.2% 15.8ms +/- 10.8% significant
regexp: 1.30x as fast 34.0ms +/- 2.6% 26.1ms +/- 2.7% significant
dna: 1.30x as fast 34.0ms +/- 2.6% 26.1ms +/- 2.7% significant
string: *1.37x as slow* 170.6ms +/- 1.2% 234.5ms +/- 1.6% significant
base64: *1.79x as slow* 10.4ms +/- 3.5% 18.6ms +/- 9.3% significant
fasta: *1.145x as slow* 31.8ms +/- 2.8% 36.4ms +/- 2.5% significant
tagcloud: ?? 52.3ms +/- 2.5% 53.4ms +/- 2.0% not conclusive: might be *1.021x as slow*
unpack-code: *1.54x as slow* 53.9ms +/- 0.8% 82.9ms +/- 1.9% significant
validate-input: *1.95x as slow* 22.2ms +/- 2.0% 43.2ms +/- 3.0% significant
BENCHMARK 2 : V8 BENCHMARK
Questo è un benchmark piuttosto minimale fatto da Google appositamente per V8 e usato per il tuning dello stesso. C’è poco da sorprendersi che il risultato sia a vantaggio di V8 per un buon 168% in più.
Risultati Firefox:
Richards: 2606
DeltaBlue: 1351
Crypto: 2397
RayTrace: 550
EarleyBoyer: 1184
RegExp: 596
Splay: 2204
Risultati Chrome:
Richards: 4815
DeltaBlue: 5203
Crypto: 6233
RayTrace: 4653
EarleyBoyer: 9177
RegExp: 910
Splay: 1195
BENCHMARK 3 : Kraken 1.1
Per par condicio ho lanciato anche Kraken, benchmark minimale di casa Mozilla. Tuttavia anche Kraken va contro la sua stessa creatura. La differenza è meno marcata (106%) ma comunque sostanziosa. In pratica Firefox ci mette il doppio del tempo del concorrente a terminare il benchmark.
====================================================================================
** TOTAL **: 2.06x as fast 17426.2ms +/- 1.6% 8456.6ms +/- 1.2% significant
====================================================================================
ai: 9.85x as fast 5491.4ms +/- 4.5% 557.6ms +/- 4.8% significant
astar: 9.85x as fast 5491.4ms +/- 4.5% 557.6ms +/- 4.8% significant
audio: 1.74x as fast 4684.1ms +/- 1.0% 2697.0ms +/- 1.8% significant
beat-detection: 1.34x as fast 1123.9ms +/- 0.7% 839.7ms +/- 2.6% significant
dft: 1.54x as fast 1409.8ms +/- 2.5% 913.2ms +/- 1.4% significant
fft: 1.64x as fast 880.6ms +/- 0.7% 537.4ms +/- 3.3% significant
oscillator: 3.12x as fast 1269.8ms +/- 2.1% 406.7ms +/- 2.2% significant
imaging: 1.45x as fast 4511.9ms +/- 1.6% 3111.2ms +/- 2.5% significant
gaussian-blur: 2.46x as fast 1748.3ms +/- 1.8% 711.0ms +/- 2.5% significant
darkroom: *1.36x as slow* 827.2ms +/- 0.5% 1121.2ms +/- 1.8% significant
desaturate: 1.51x as fast 1936.4ms +/- 3.7% 1279.0ms +/- 5.9% significant
json: 1.039x as fast 495.2ms +/- 0.2% 476.8ms +/- 2.0% significant
parse-financial: *1.037x as slow* 283.6ms +/- 0.2% 294.2ms +/- 3.2% significant
stringify-tinderbox: 1.159x as fast 211.6ms +/- 0.3% 182.6ms +/- 0.7% significant
stanford: 1.39x as fast 2243.6ms +/- 1.4% 1614.0ms +/- 0.4% significant
crypto-aes: 1.44x as fast 625.4ms +/- 5.1% 435.1ms +/- 0.8% significant
crypto-ccm: 1.058x as fast 461.2ms +/- 1.8% 435.8ms +/- 0.8% significant
crypto-pbkdf2: 1.69x as fast 809.2ms +/- 0.8% 477.7ms +/- 1.1% significant
crypto-sha256-iterative: 1.31x as fast 347.8ms +/- 0.9% 265.4ms +/- 1.5% significant
BENCHMARK 4 : Dromaeo
Per finire ecco il risultato del benchmark javascript più completo che conosco: Dromaeo. Sempre di casa Mozilla ma è chiaro, verificabile e il codice del benchmark è disponibile a chiunque voglia controllarlo.
Risultati Firefox = 132.72runs/s
Risultati Chrome = 238.36runs/s
Potete controllare i dettagli cliccando sui link.
Chrome è più performante del 79.6% rispetto a Firefox.
CONCLUSIONE
Questa sfida è terminata 3-1 per il browser di Google e quel punto di Firefox è strappato per un soffio. Insomma, Chrome si classifica, come da pronostico, estremamente più veloce di Firefox nell’esecuzione del JavaScript. Tenendo però conto della velocità con cui questi Browser si riproducono non ci resta che aspettare qualche mese per vedere come evolverà questa appassionante sfida.
Ciao, non seguo spesso I test di Tom’s Hardware ma proprio l’altro giorno mi sono imbattuto in questo e credo potrebbe interessarti:
http://www.tomshw.it/cont/articolo/confronto-browser-ie9-opera-11-50-firefox-5-chrome-12-e-safari-5/32790/1.html
Molto interessante. 😀 Un test fin troppo approfondito ma interessante. 😉
segnalo http://arewefastyet.com/
Wow. Un benchmark ogni ora non l’avevo mai visto. 😀 Però non trovo un modo per allargare il periodo di tempo dei grafici. 😐