Firefox 18 发布了,新闻说启用了IonMonkey JIT的SpiderMonkey性能提升了25%(Kraken)。今天测试了一下,发现在 Linux上,Firefox 18 比 Firefox 17 的提升,甚至可以达到 47%,跟 Chromium 的速度旗鼓相当。以下是用我的台式机跑出来的 Kraken、V8、SunSpider、Octane 四个Benchmark的结果。
Kraken Benchmark
Firefox 18
=============================================== RESULTS (means and 95% confidence intervals) ———————————————– Total: 3237.6ms +/- 1.4% ———————————————–
ai: 151.8ms +/- 0.4% astar: 151.8ms +/- 0.4%
audio: 1152.6ms +/- 2.3% beat-detection: 345.4ms +/- 1.1% dft: 376.1ms +/- 6.5% fft: 222.7ms +/- 1.1% oscillator: 208.4ms +/- 7.1%
imaging: 868.5ms +/- 1.0% gaussian-blur: 375.4ms +/- 1.2% darkroom: 293.6ms +/- 0.7% desaturate: 199.5ms +/- 3.2%
json: 206.0ms +/- 0.8% parse-financial: 110.1ms +/- 0.7% stringify-tinderbox: 95.9ms +/- 1.2%
stanford: 858.7ms +/- 3.1% crypto-aes: 199.4ms +/- 3.0% crypto-ccm: 178.1ms +/- 9.5% crypto-pbkdf2: 353.3ms +/- 2.2% crypto-sha256-iterative: 127.9ms +/- 18.2%
Firefox 17
=============================================== RESULTS (means and 95% confidence intervals) ———————————————– Total: 4767.5ms +/- 1.2% ———————————————–
ai: 164.6ms +/- 2.3% astar: 164.6ms +/- 2.3%
audio: 1666.5ms +/- 1.9% beat-detection: 412.3ms +/- 0.8% dft: 656.3ms +/- 1.7% fft: 310.0ms +/- 6.4% oscillator: 287.9ms +/- 10.8%
imaging: 1862.4ms +/- 1.6% gaussian-blur: 1144.3ms +/- 0.3% darkroom: 376.8ms +/- 0.4% desaturate: 341.3ms +/- 9.0%
json: 188.1ms +/- 3.2% parse-financial: 107.5ms +/- 3.2% stringify-tinderbox: 80.6ms +/- 6.6%
stanford: 885.9ms +/- 1.8% crypto-aes: 219.2ms +/- 0.8% crypto-ccm: 157.4ms +/- 1.5% crypto-pbkdf2: 394.9ms +/- 4.3% crypto-sha256-iterative: 114.4ms +/- 0.6%
Firefox 18 vs. Firefox 17
(为了防止折行,将“FROM”和“TO”列隐去了,可以参看上面的结果):
从结果来看引入了IonMonkey之后加速了将近47%。但是同时,个别程序性能反而下降了。
TEST COMPARISON DETAILS
=============================================================
** TOTAL **: 1.47x as fast significant
=============================================================
ai: 1.084x as fast significant astar: 1.084x as fast significant
audio: 1.45x as fast significant beat-detection: 1.194x as fast significant dft: 1.75x as fast significant fft: 1.39x as fast significant oscillator: 1.38x as fast significant
imaging: 2.14x as fast significant gaussian-blur: 3.05x as fast significant darkroom: 1.28x as fast significant desaturate: 1.71x as fast significant
json: *1.095x as slow* significant parse-financial: ?? might be *1.024x as slow* stringify-tinderbox: *1.190x as slow* significant
stanford: - crypto-aes: 1.099x as fast significant crypto-ccm: *1.132x as slow* significant crypto-pbkdf2: 1.118x as fast significant crypto-sha256-iterative: ?? might be *1.118x as slow*
Chromium
作为对比,一并测试了一下 Chromium 的得分,版本号 18.0.1025.168(详细结果):
=============================================== RESULTS (means and 95% confidence intervals) ———————————————– Total: 3010.3ms +/- 1.0% ———————————————–
ai: 244.1ms +/- 0.5% astar: 244.1ms +/- 0.5%
audio: 1446.5ms +/- 0.8% beat-detection: 444.6ms +/- 3.0% dft: 471.6ms +/- 0.7% fft: 298.6ms +/- 0.3% oscillator: 231.7ms +/- 0.8%
imaging: 704.7ms +/- 0.5% gaussian-blur: 259.6ms +/- 0.2% darkroom: 216.6ms +/- 0.3% desaturate: 228.5ms +/- 1.5%
json: 176.2ms +/- 3.7% parse-financial: 103.2ms +/- 1.3% stringify-tinderbox: 73.0ms +/- 7.9%
stanford: 438.8ms +/- 3.2% crypto-aes: 108.2ms +/- 4.7% crypto-ccm: 115.0ms +/- 5.3% crypto-pbkdf2: 136.7ms +/- 2.8% crypto-sha256-iterative: 78.9ms +/- 2.2%
总体上而言还是 Chromium 快一点,但是得分很接近,在一些分项上 Firefox 18.0 速度比Chromium更快。
Firefox 18.0 vs Chromium
TEST COMPARISON DETAILS
====================================================================================
** TOTAL **: *1.076x as slow* significant
============================================================
ai: 1.61x as fast significant astar: 1.61x as fast significant
audio: 1.25x as fast significant beat-detection: 1.29x as fast significant dft: 1.25x as fast significant fft: 1.34x as fast significant oscillator: 1.112x as fast significant
imaging: *1.23x as slow* significant gaussian-blur: *1.45x as slow* significant darkroom: *1.36x as slow* significant desaturate: 1.145x as fast significant
json: *1.169x as slow* significant parse-financial: *1.067x as slow* significant stringify-tinderbox: *1.31x as slow* significant
stanford: *1.96x as slow* significant crypto-aes: *1.84x as slow* significant crypto-ccm: *1.55x as slow* significant crypto-pbkdf2: *2.58x as slow* significant crypto-sha256-iterative: *1.62x as slow* significant
Sunspider 0.91 Benchmark
SunSpider 0.9.1 的测试结果,有点意外的是 Firefox 17.0.1 最快,其次是Firefox 18.0,Chromium最慢。嗯,一定是我打开的方式不对。
测试地址:http://www.webkit.org/perf/sunspider-0.9.1/sunspider-0.9.1/driver.html
Firefox 18.0
============================================ RESULTS (means and 95% confidence intervals) ——————————————– Total: 269.7ms +/- 0.9% ——————————————–
3d: 46.5ms +/- 1.1% cube: 16.7ms +/- 2.1% morph: 8.8ms +/- 3.4% raytrace: 21.0ms +/- 0.0%
access: 23.7ms +/- 2.9% binary-trees: 3.3ms +/- 10.5% fannkuch: 11.7ms +/- 3.0% nbody: 4.6ms +/- 8.0% nsieve: 4.1ms +/- 5.5%
bitops: 14.1ms +/- 5.0% 3bit-bits-in-byte: 1.3ms +/- 26.6% bits-in-byte: 5.0ms +/- 0.0% bitwise-and: 3.6ms +/- 10.3% nsieve-bits: 4.2ms +/- 7.2%
controlflow: 3.5ms +/- 14.4% recursive: 3.5ms +/- 14.4%
crypto: 28.7ms +/- 7.0% aes: 13.5ms +/- 7.6% md5: 10.5ms +/- 15.5% sha1: 4.7ms +/- 12.5%
date: 36.8ms +/- 2.4% format-tofte: 23.1ms +/- 1.8% format-xparb: 13.7ms +/- 4.9%
math: 22.5ms +/- 2.7% cordic: 4.1ms +/- 5.5% partial-sums: 14.8ms +/- 2.0% spectral-norm: 3.6ms +/- 13.9%
regexp: 15.6ms +/- 2.4% dna: 15.6ms +/- 2.4%
string: 78.3ms +/- 2.6% base64: 6.3ms +/- 5.5% fasta: 9.0ms +/- 0.0% tagcloud: 22.5ms +/- 1.7% unpack-code: 29.3ms +/- 5.9% validate-input: 11.2ms +/- 2.7%
Chromium
============================================ RESULTS (means and 95% confidence intervals) ——————————————– Total: 294.6ms +/- 1.5% ——————————————–
3d: 41.0ms +/- 7.6% cube: 12.6ms +/- 9.3% morph: 11.3ms +/- 3.1% raytrace: 17.1ms +/- 14.8%
access: 26.9ms +/- 3.9% binary-trees: 2.5ms +/- 15.1% fannkuch: 10.9ms +/- 5.7% nbody: 8.2ms +/- 5.5% nsieve: 5.3ms +/- 9.1%
bitops: 39.0ms +/- 4.8% 3bit-bits-in-byte: 5.9ms +/- 8.9% bits-in-byte: 8.0ms +/- 8.4% bitwise-and: 17.8ms +/- 5.9% nsieve-bits: 7.3ms +/- 9.3%
controlflow: 4.4ms +/- 13.7% recursive: 4.4ms +/- 13.7%
crypto: 21.8ms +/- 5.3% aes: 11.6ms +/- 5.2% md5: 4.8ms +/- 6.3% sha1: 5.4ms +/- 11.2%
date: 40.7ms +/- 4.6% format-tofte: 16.1ms +/- 7.4% format-xparb: 24.6ms +/- 6.0%
math: 24.0ms +/- 4.0% cordic: 5.6ms +/- 6.6% partial-sums: 12.5ms +/- 4.9% spectral-norm: 5.9ms +/- 10.6%
regexp: 9.9ms +/- 2.3% dna: 9.9ms +/- 2.3%
string: 86.9ms +/- 1.8% base64: 7.6ms +/- 6.6% fasta: 13.9ms +/- 5.7% tagcloud: 20.3ms +/- 1.7% unpack-code: 29.2ms +/- 1.9% validate-input: 15.9ms +/- 4.9%
Firefox 17.0.1
============================================ RESULTS (means and 95% confidence intervals) ——————————————– Total: 248.2ms +/- 1.1% ——————————————–
3d: 42.6ms +/- 1.4% cube: 16.3ms +/- 2.1% morph: 8.0ms +/- 0.0% raytrace: 18.3ms +/- 1.9%
access: 22.2ms +/- 3.7% binary-trees: 2.8ms +/- 10.8% fannkuch: 9.4ms +/- 3.9% nbody: 5.4ms +/- 6.8% nsieve: 4.6ms +/- 8.0%
bitops: 15.6ms +/- 2.4% 3bit-bits-in-byte: 1.1ms +/- 20.5% bits-in-byte: 5.9ms +/- 3.8% bitwise-and: 4.3ms +/- 8.0% nsieve-bits: 4.3ms +/- 8.0%
controlflow: 2.9ms +/- 7.8% recursive: 2.9ms +/- 7.8%
crypto: 24.9ms +/- 4.2% aes: 13.7ms +/- 4.9% md5: 7.5ms +/- 9.3% sha1: 3.7ms +/- 9.3%
date: 36.8ms +/- 1.5% format-tofte: 22.4ms +/- 2.2% format-xparb: 14.4ms +/- 2.6%
math: 21.8ms +/- 4.0% cordic: 4.2ms +/- 7.2% partial-sums: 13.7ms +/- 3.5% spectral-norm: 3.9ms +/- 10.4%
regexp: 15.2ms +/- 2.0% dna: 15.2ms +/- 2.0%
string: 66.2ms +/- 1.5% base64: 5.2ms +/- 5.8% fasta: 8.9ms +/- 2.5% tagcloud: 20.3ms +/- 1.7% unpack-code: 23.5ms +/- 1.6% validate-input: 8.3ms +/- 4.2%
V8-v7 Benchmark
V8的测试结果,Firefox 18.0 > Chromium > Firefox 17.0.1
测试地址:http://v8.googlecode.com/svn/data/benchmarks/v7/run.html
Firefox 18.0
Score: 7671
Richards: 8811 DeltaBlue: 10991 Crypto: 11226 RayTrace: 6761 EarleyBoyer: 11968 RegExp: 904 Splay: 9461 NavierStokes: 15932
Chromium
Score: 7298
Richards: 10584 DeltaBlue: 14030 Crypto: 13852 RayTrace: 8836 EarleyBoyer: 19236 RegExp: 2368 Splay: 3268 NavierStokes: 2974
Firefox 17.0.1
Score: 5695
Richards: 6499 DeltaBlue: 7061 Crypto: 9931 RayTrace: 3211 EarleyBoyer: 7682 RegExp: 1447 Splay: 7603 NavierStokes: 8945
Octane v1 Benchmark
最后是 Octane 的测试结果。Octane Benchmark 的结果是一个分数,得分越高越好。总体得分来看,Chromium > Firefox 18.0 > Firefox 17.0.1。
关于这个Benchmark,Mozilla的开发人员Nicholas Nethercote并不认可,发表了一篇博客,认为测试程序的选取不具有代表性,过度的考虑了Chrome Apps。
测试地址:http://octane-benchmark.googlecode.com/svn/latest/index.html
Firefox 18:
Octane Score: 6754 Richards 8977 Deltablue 9984 Crypto 9910 Raytrace 6326 EarleyBoyer 11472 Regexp 634 Splay 9192 NavierStokes 15768 pdf.js 3452 Mandreel 6184 GB Emulator 8755 CodeLoad 7924 Box2DWeb 6940
Firefox 17:
Octane Score: 5618
Richards 6365 Deltablue 7425 Crypto 9962 Raytrace 3217 EarleyBoyer 7217 Regexp 1410 Splay 7896 NavierStokes 8877 pdf.js 4050 Mandreel 5447 GB Emulator 5096 CodeLoad 8622 Box2DWeb 5306
Chromium 18.0
Octane Score: 7735
Richards 8804 Deltablue 14116 Crypto 13961 Raytrace 9028 EarleyBoyer 19073 Regexp 2419 Splay 3726 NavierStokes 3112 pdf.js 10526 Mandreel 7992 GB Emulator 11014 CodeLoad 8310 Box2DWeb 5498
说明
- 测试的机器的配置是 Intel(R) Core(TM)2 Quad CPU Q9400 @ 2.66GHz, 8G DDR2, Ubuntu 10.04 x86_64。
- 我机器上的 Chromium 的版本号似乎比 Chrome 的小,不确定是不是最新的版本(用的 stable release channel),对于测试结果有影响。
- 发现默认情况下Firefox 17和Firefox 18不会同时运行。Firefox在启动的时候会检查一下是否已经有了Firefox进程,如果有的话就不开新的进程了。这使得在测试的时候必须先关闭所有的Firefox浏览器窗口才能够换一个版本。为了避免乌龙我在每次测试之前,通过“About Firefox”菜单确认了版本。
- 这个测试结果仅限于Linux,在Windows环境下或许是完全另外的一个结果。相比而言各个浏览器对于Linux环境下的性能优化都不是很上心,小小失落。