JavaScript ベンチマーク対決!

ああ…履歴書を書かなきゃ。エントリーシートも。



さて、Safari 4のβ版が出たというのでSunSpider JavaScript Benchmarkで測定してみました。
ついでなので他のブラウザも。


Trunk
Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP; rv:1.9.2a1pre) Gecko/20090224 Minefield/3.2a1pre (.NET Client 3.5.30729.01) - Build ID: 20090224154214

Safari
4 Public Beta (528.16)

Google Chrome
1.0.154.48

Opera
バージョン 9.63 Build 10476

Sleipnir (IE7 7.0.5730.13)
バージョン 2.82 Build 2802400


ではベンチマークの結果を順に




Trunk

============================================
RESULTS (means and 95% confidence intervals)

                                                                                      • -

Total: 1181.8ms +/- 0.3%

                                                                                      • -

3d: 147.0ms +/- 0.6%
cube: 43.2ms +/- 1.3%
morph: 34.4ms +/- 2.0%
raytrace: 69.4ms +/- 1.0%

access: 159.8ms +/- 1.5%
binary-trees: 53.4ms +/- 3.9%
fannkuch: 58.8ms +/- 0.9%
nbody: 27.0ms +/- 3.3%
nsieve: 20.6ms +/- 3.3%

bitops: 33.8ms +/- 5.5%
3bit-bits-in-byte: 1.2ms +/- 46.3%
bits-in-byte: 7.6ms +/- 9.0%
bitwise-and: 2.2ms +/- 25.3%
nsieve-bits: 22.8ms +/- 2.4%

controlflow: 54.6ms +/- 1.2%
recursive: 54.6ms +/- 1.2%

crypto: 63.8ms +/- 3.7%
aes: 32.0ms +/- 0.0%
md5: 21.0ms +/- 7.3%
sha1: 10.8ms +/- 9.6%

date: 143.4ms +/- 2.6%
format-tofte: 62.2ms +/- 5.5%
format-xparb: 81.2ms +/- 1.7%

math: 51.6ms +/- 2.7%
cordic: 30.6ms +/- 6.2%
partial-sums: 13.2ms +/- 4.2%
spectral-norm: 7.8ms +/- 7.1%

regexp: 104.8ms +/- 0.5%
dna: 104.8ms +/- 0.5%

string: 423.0ms +/- 0.7%
base64: 14.4ms +/- 4.7%
fasta: 77.0ms +/- 1.6%
tagcloud: 100.0ms +/- 1.5%
unpack-code: 181.8ms +/- 1.7%
validate-input: 49.8ms +/- 3.3%



Trunk (Safe mode)

============================================
RESULTS (means and 95% confidence intervals)

                                                                                      • -

Total: 3169.8ms +/- 0.8%

                                                                                      • -

3d: 423.6ms +/- 0.8%
cube: 148.8ms +/- 1.2%
morph: 149.8ms +/- 0.9%
raytrace: 125.0ms +/- 1.9%

access: 579.2ms +/- 1.1%
binary-trees: 52.0ms +/- 2.9%
fannkuch: 266.6ms +/- 0.4%
nbody: 165.4ms +/- 3.0%
nsieve: 95.2ms +/- 2.1%

bitops: 510.0ms +/- 0.2%
3bit-bits-in-byte: 88.2ms +/- 0.6%
bits-in-byte: 136.6ms +/- 0.5%
bitwise-and: 121.4ms +/- 0.6%
nsieve-bits: 163.8ms +/- 0.3%

controlflow: 54.4ms +/- 1.3%
recursive: 54.4ms +/- 1.3%

crypto: 223.0ms +/- 0.8%
aes: 88.6ms +/- 0.8%
md5: 65.8ms +/- 0.8%
sha1: 68.6ms +/- 1.6%

date: 164.2ms +/- 1.2%
format-tofte: 83.2ms +/- 1.3%
format-xparb: 81.0ms +/- 2.7%

math: 409.2ms +/- 2.2%
cordic: 193.6ms +/- 1.3%
partial-sums: 121.6ms +/- 7.2%
spectral-norm: 94.0ms +/- 2.6%

regexp: 241.0ms +/- 8.3%
dna: 241.0ms +/- 8.3%

string: 565.2ms +/- 1.1%
base64: 67.0ms +/- 1.3%
fasta: 145.2ms +/- 1.3%
tagcloud: 111.0ms +/- 3.8%
unpack-code: 165.0ms +/- 1.9%
validate-input: 77.0ms +/- 5.7%



Safari

============================================
RESULTS (means and 95% confidence intervals)

                                                                                      • -

Total: 1226.4ms +/- 4.0%

                                                                                      • -

3d: 272.8ms +/- 2.2%
cube: 119.2ms +/- 7.6%
morph: 85.0ms +/- 1.5%
raytrace: 68.6ms +/- 4.2%

access: 118.2ms +/- 2.5%
binary-trees: 14.2ms +/- 3.9%
fannkuch: 14.0ms +/- 0.0%
nbody: 81.6ms +/- 4.5%
nsieve: 8.4ms +/- 8.1%

bitops: 47.6ms +/- 3.0%
3bit-bits-in-byte: 3.0ms +/- 0.0%
bits-in-byte: 6.8ms +/- 8.2%
bitwise-and: 8.2ms +/- 6.8%
nsieve-bits: 29.6ms +/- 2.3%

controlflow: 4.0ms +/- 0.0%
recursive: 4.0ms +/- 0.0%

crypto: 69.4ms +/- 1.0%
aes: 17.0ms +/- 0.0%
md5: 26.2ms +/- 2.1%
sha1: 26.2ms +/- 2.1%

date: 111.8ms +/- 3.8%
format-tofte: 37.6ms +/- 1.8%
format-xparb: 74.2ms +/- 5.1%

math: 201.4ms +/- 8.9%
cordic: 85.8ms +/- 20.5%
partial-sums: 83.8ms +/- 1.2%
spectral-norm: 31.8ms +/- 1.7%

regexp: 46.2ms +/- 53.9%
dna: 46.2ms +/- 53.9%

string: 355.0ms +/- 0.0%
base64: 32.4ms +/- 2.1%
fasta: 51.0ms +/- 1.7%
tagcloud: 126.2ms +/- 0.4%
unpack-code: 78.2ms +/- 0.7%
validate-input: 67.2ms +/- 1.5%



Google Chrome

============================================
RESULTS (means and 95% confidence intervals)

                                                                                      • -

Total: 1302.6ms +/- 0.8%

                                                                                      • -

3d: 125.0ms +/- 7.3%
cube: 29.6ms +/- 9.2%
morph: 55.8ms +/- 13.7%
raytrace: 39.6ms +/- 14.5%

access: 84.8ms +/- 8.6%
binary-trees: 5.2ms +/- 20.0%
fannkuch: 28.8ms +/- 1.9%
nbody: 28.4ms +/- 21.4%
nsieve: 22.4ms +/- 5.0%

bitops: 63.0ms +/- 3.4%
3bit-bits-in-byte: 4.2ms +/- 13.2%
bits-in-byte: 8.0ms +/- 11.0%
bitwise-and: 25.8ms +/- 5.3%
nsieve-bits: 25.0ms +/- 7.9%

controlflow: 3.0ms +/- 0.0%
recursive: 3.0ms +/- 0.0%

crypto: 52.2ms +/- 13.6%
aes: 20.4ms +/- 34.6%
md5: 16.4ms +/- 8.6%
sha1: 15.4ms +/- 7.2%

date: 129.2ms +/- 4.9%
format-tofte: 66.0ms +/- 4.6%
format-xparb: 63.2ms +/- 7.3%

math: 103.6ms +/- 2.8%
cordic: 53.8ms +/- 3.0%
partial-sums: 34.8ms +/- 3.0%
spectral-norm: 15.0ms +/- 5.9%

regexp: 365.8ms +/- 2.0%
dna: 365.8ms +/- 2.0%

string: 376.0ms +/- 2.7%
base64: 34.0ms +/- 22.8%
fasta: 43.2ms +/- 3.8%
tagcloud: 101.8ms +/- 4.3%
unpack-code: 140.4ms +/- 2.4%
validate-input: 56.6ms +/- 9.4%


Opera

============================================
RESULTS (means and 95% confidence intervals)

                                                                                      • -

Total: 5112.4ms +/- 0.7%

                                                                                      • -

3d: 565.6ms +/- 6.1%
cube: 187.8ms +/- 0.3%
morph: 228.0ms +/- 16.6%
raytrace: 149.8ms +/- 7.4%

access: 797.0ms +/- 1.6%
binary-trees: 50.2ms +/- 17.7%
fannkuch: 387.4ms +/- 2.2%
nbody: 187.6ms +/- 0.4%
nsieve: 171.8ms +/- 0.3%

bitops: 803.2ms +/- 1.3%
3bit-bits-in-byte: 93.6ms +/- 0.7%
bits-in-byte: 181.2ms +/- 5.8%
bitwise-and: 309.6ms +/- 2.8%
nsieve-bits: 218.8ms +/- 0.3%

controlflow: 68.8ms +/- 15.2%
recursive: 68.8ms +/- 15.2%

crypto: 300.0ms +/- 5.2%
aes: 150.0ms +/- 6.8%
md5: 75.0ms +/- 11.1%
sha1: 75.0ms +/- 11.1%

date: 318.8ms +/- 3.3%
format-tofte: 187.6ms +/- 0.4%
format-xparb: 131.2ms +/- 8.1%

math: 459.2ms +/- 2.3%
cordic: 209.4ms +/- 4.9%
partial-sums: 140.6ms +/- 0.5%
spectral-norm: 109.2ms +/- 0.5%

regexp: 569.0ms +/- 1.9%
dna: 569.0ms +/- 1.9%

string: 1230.8ms +/- 2.1%
base64: 125.0ms +/- 0.0%
fasta: 278.2ms +/- 3.3%
tagcloud: 246.8ms +/- 3.6%
unpack-code: 443.6ms +/- 2.5%
validate-input: 137.2ms +/- 6.2%



Sleipnir

============================================
RESULTS (means and 95% confidence intervals)

                                                                                      • -

Total: 36250.6ms +/- 2.1%

                                                                                      • -

3d: 1321.6ms +/- 1.3%
cube: 368.8ms +/- 2.9%
morph: 434.4ms +/- 2.0%
raytrace: 518.4ms +/- 1.7%
access: 1875.0ms +/- 1.3%
binary-trees: 359.6ms +/- 0.2%
fannkuch: 762.4ms +/- 2.1%
nbody: 334.2ms +/- 3.2%
nsieve: 418.8ms +/- 2.1%
bitops: 1637.8ms +/- 1.5%
3bit-bits-in-byte: 356.2ms +/- 2.6%
bits-in-byte: 428.2ms +/- 2.5%
bitwise-and: 406.4ms +/- 3.4%
nsieve-bits: 447.0ms +/- 2.4%
controlflow: 371.8ms +/- 2.4%
recursive: 371.8ms +/- 2.4%
crypto: 871.8ms +/- 1.8%
aes: 349.8ms +/- 3.0%
md5: 259.6ms +/- 4.2%
sha1: 262.4ms +/- 3.3%
date: 687.6ms +/- 0.2%
format-tofte: 359.4ms +/- 0.2%
format-xparb: 328.2ms +/- 0.2%
math: 1031.8ms +/- 1.3%
cordic: 441.2ms +/- 2.0%
partial-sums: 262.4ms +/- 3.3%
spectral-norm: 328.2ms +/- 0.2%
regexp: 403.0ms +/- 2.2%
dna: 403.0ms +/- 2.2%
string: 28050.2ms +/- 2.6%
base64: 14959.4ms +/- 4.1%
fasta: 418.8ms +/- 2.1%
tagcloud: 3609.6ms +/- 0.5%
unpack-code: 393.8ms +/- 2.2%
validate-input: 8668.6ms +/- 2.3%



Tinderbox-buildなだけあってTrunkがSafariに対して僅差で勝っています。
意外な結果だったのがOpera。もっと速いのかと思っていました。
実際にいくつかのWebサイトを巡ってみても、TrunkとSafariが速く感じます。
Sleipnir(IE7)は…、まぁGmailを使っていてもFirefoxに比べて遅いなーとは感じていたので
予想はしていましたがここまで遅いとは。
おかげで数回計測しなおしました…