My blog has been moved to ariya.ofilabs.com.

Sunday, June 15, 2008

JavaScript speed race

Just for fun, I tested JavaScript performance of several web browsers, using the well-known SunSpider benchmark tool. The test machine is a fairly old Fujitsu-Siemens Amilo notebook with AMD Turion64 1.8 GHz processor and 1 GB RAM, running Microsoft Windows XP SP2.

SunSpider benchmark results

The result is not surprising. Internet Explorer is notoriously slow but there is hope with IE8. Mozilla developers have done a great job optimizing Firefox. WebKit with SquirrelFish (and surely the upcoming Safari 4) really shines in speed.

18 comments:

Anonymous said...

what about a konqueror 3 & 4 speed test ?

Anonymous said...

Proud KDE developer, but not including a current konqueror 4.1 beta build for windows, using KHTML, for completeness?

Thomas said...

@anonymous
he did include the development version for KDE, its the one at the top :)

Anonymous said...

@Thomas: WebKit!= KHTML. Perhaps that is just ungettable for Qt coders? :)

Anonymous said...

@Thomas

Plus: Qt 4.4 Webkit != Webkit Nightly. Trolltech freezes their version of Webkit for the lifetime of a major (4.x) Qt release AFAIK.

I'm really curious how Konqueror with KHTML for 4.1 would fare against the Qt 4.4 Webkit, especially since KHTML received some major JavaScript engine performance improvements recently.

-Erunno

Anonymous said...

The web is unfortunately not only about standards and there are much more websites working well with webkit than with khtml right now.

This is great news, can't wait for a mature webkit kpart.

Ariya Hidayat said...

@anonymous: actually because I plan to redo the test once KDE 4.1 and Firefox 3 finally released.

Henrik Pauli said...

I too wonder how long Konq3 and current Konq4 takes on that same machine.

TGM said...

I'd like to suggest your benchmark, being hosted by webkit.org, may be optimised by webkit?

Are there any 'official' Javascript benchmarks out there (say maybe w3c)?

It'd be interesting to see the results of something like that. Oh my FF3 x64 gave me 4070 on that test :)

Anonymous said...

> I plan to redo the test once KDE 4.1 and Firefox 3 finally released.

If you're going ahead and testing the FFbeta, why not the KDE beta? Why wait on Konqueror? Especially if you're posting it to planet kde?

Nick Presta said...

Konqueror 3.5.9 (Debian Testing) - 54905.0ms (average of 5 tests, excluding any outliers)

Ariya Hidayat said...

@tom: other JS tests are not as complete as SunSpider

@blauzahl: c'mon, anyone that tries KDE 4 beta1 Windows knows that it chokes on one of the SunSpider tests. The fix for that has not make it yet to the Windows binary. and btw it is FF RC3, not beta.

Anonymous said...

FIREFOX 3 FINAL

RESULTS (means and 95% confidence intervals)
--------------------------------------------
Total: 4225.4ms +/- 2.1%
--------------------------------------------

3d: 494.8ms +/- 2.9%
cube: 176.6ms +/- 2.5%
morph: 178.6ms +/- 7.5%
raytrace: 139.6ms +/- 1.7%

access: 704.8ms +/- 3.4%
binary-trees: 54.2ms +/- 6.4%
fannkuch: 332.8ms +/- 4.6%
nbody: 181.6ms +/- 4.1%
nsieve: 136.2ms +/- 5.9%

bitops: 645.6ms +/- 6.4%
3bit-bits-in-byte: 112.4ms +/- 8.2%
bits-in-byte: 177.0ms +/- 18.2%
bitwise-and: 146.4ms +/- 2.9%
nsieve-bits: 209.8ms +/- 4.3%

controlflow: 56.8ms +/- 3.9%
recursive: 56.8ms +/- 3.9%

crypto: 279.2ms +/- 8.1%
aes: 108.2ms +/- 4.3%
md5: 80.6ms +/- 9.1%
sha1: 90.4ms +/- 22.4%

date: 292.0ms +/- 6.0%
format-tofte: 182.2ms +/- 5.3%
format-xparb: 109.8ms +/- 15.3%

math: 516.0ms +/- 6.5%
cordic: 250.0ms +/- 13.1%
partial-sums: 151.8ms +/- 4.4%
spectral-norm: 114.2ms +/- 14.8%

regexp: 279.4ms +/- 9.3%
dna: 279.4ms +/- 9.3%

string: 956.8ms +/- 4.0%
base64: 113.6ms +/- 13.2%
fasta: 220.2ms +/- 4.0%
tagcloud: 156.4ms +/- 4.9%
unpack-code: 339.4ms +/- 10.1%
validate-input: 127.2ms +/- 11.2%

Ariya Hidayat said...

@Nick Presta, @kaper: thanks for testing. but the result must come from the same machine to have any meaning.

Unknown said...

Chrome

Total: 2518.8ms +/- 0.9%
--------------------------------------------

3d: 176.6ms +/- 3.3%
cube: 45.8ms +/- 11.3%
morph: 68.2ms +/- 7.2%
raytrace: 62.6ms +/- 3.9%

access: 119.6ms +/- 5.1%
binary-trees: 8.4ms +/- 13.2%
fannkuch: 38.8ms +/- 2.7%
nbody: 46.0ms +/- 12.2%
nsieve: 26.4ms +/- 2.6%

bitops: 90.8ms +/- 4.6%
3bit-bits-in-byte: 6.8ms +/- 8.2%
bits-in-byte: 14.4ms +/- 4.7%
bitwise-and: 23.2ms +/- 4.5%
nsieve-bits: 46.4ms +/- 8.2%

controlflow: 4.4ms +/- 15.5%
recursive: 4.4ms +/- 15.5%

crypto: 90.8ms +/- 5.3%
aes: 33.2ms +/- 9.3%
md5: 30.0ms +/- 6.6%
sha1: 27.6ms +/- 2.5%

date: 508.2ms +/- 1.2%
format-tofte: 297.0ms +/- 2.6%
format-xparb: 211.2ms +/- 2.5%

math: 197.6ms +/- 7.9%
cordic: 106.6ms +/- 9.3%
partial-sums: 68.0ms +/- 21.6%
spectral-norm: 23.0ms +/- 9.4%

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

string: 820.0ms +/- 1.7%
base64: 89.6ms +/- 9.2%
fasta: 75.8ms +/- 2.1%
tagcloud: 226.8ms +/- 2.5%
unpack-code: 297.8ms +/- 1.0%
validate-input: 130.0ms +/- 1.8%

Brendan said...

buy ultima gold
buy ultima gold
buy ultima gold
ultima gold
ultima gold
ultima gold
eq2 platinum
ffxi gil
seo tools
loan modification
warhammer guides
loan modification
wow 80
mmorpg database
hot gamers
daily trivia questions
ffxi gil
loan modification
cooking oil recycling
mmorpg games
ultima gold
mmorpg guides
Age of conan
Warhammer Online
World of Warcraft
Archloard
City of Heroes
loan modification

Anonymous said...

On my iMac 2008 (2.8 GHz Core Duo) using WebKit Nightly build r49845. Sorry but Chrome is not available on Mac...

============================================
RESULTS (means and 95% confidence intervals)
--------------------------------------------
Total: 483.8ms +/- 1.0%
--------------------------------------------

3d: 58.4ms +/- 7.0%
cube: 15.8ms +/- 10.3%
morph: 23.8ms +/- 11.3%
raytrace: 18.8ms +/- 12.7%

access: 52.2ms +/- 3.9%
binary-trees: 6.0ms +/- 0.0%
fannkuch: 20.6ms +/- 10.1%
nbody: 15.2ms +/- 10.7%
nsieve: 10.4ms +/- 13.6%

bitops: 32.8ms +/- 4.2%
3bit-bits-in-byte: 5.4ms +/- 12.6%
bits-in-byte: 9.6ms +/- 7.1%
bitwise-and: 6.0ms +/- 0.0%
nsieve-bits: 11.8ms +/- 8.8%

controlflow: 5.6ms +/- 12.2%
recursive: 5.6ms +/- 12.2%

crypto: 28.0ms +/- 3.1%
aes: 13.4ms +/- 5.1%
md5: 7.8ms +/- 7.1%
sha1: 6.8ms +/- 8.2%

date: 63.0ms +/- 5.8%
format-tofte: 28.8ms +/- 5.6%
format-xparb: 34.2ms +/- 7.0%

math: 46.2ms +/- 4.4%
cordic: 15.4ms +/- 9.2%
partial-sums: 21.6ms +/- 7.7%
spectral-norm: 9.2ms +/- 6.0%

regexp: 30.8ms +/- 6.0%
dna: 30.8ms +/- 6.0%

string: 166.8ms +/- 2.5%
base64: 22.4ms +/- 5.0%
fasta: 24.0ms +/- 5.2%
tagcloud: 36.4ms +/- 6.7%
unpack-code: 48.6ms +/- 6.7%
validate-input: 35.4ms +/- 8.1%

Ariya Hidayat said...

Guys, I appreciate that you post your own test results. But a single result is meaningless in this context since we must compare the benchmarks result running in the SAME machine.

IOW, if you want to do the comparison yourself, test all browsers JS engine and compare the results, not just showing ONE result.