Tuesday, October 28, 2008

Webkit aka Safari Version 3.1.2 (5525.20.1) vs Minefield aka Firefox vers 3.1b2

Update: The current Webkit nightly r37894 is even faster than Minefield when it comes to the SunSpider Javascript benchmark.

TEST                   COMPARISON            FROM                 TO             DETAILS

=============================================================================

** TOTAL **: 2.03x as fast 1511.6ms +/- 3.7% 745.0ms +/- 0.4% significant

=============================================================================

3d: 1.07x as fast 142.4ms +/- 2.5% 133.4ms +/- 0.8% significant
cube: 1.27x as fast 62.6ms +/- 3.6% 49.4ms +/- 3.8% significant
morph: *1.55x as slow* 33.2ms +/- 4.9% 51.6ms +/- 1.3% significant
raytrace: 1.44x as fast 46.6ms +/- 1.5% 32.4ms +/- 2.1% significant

access: 2.66x as fast 182.2ms +/- 18.6% 68.4ms +/- 2.1% significant
binary-trees: 5.17x as fast 47.6ms +/- 1.4% 9.2ms +/- 6.0% significant
fannkuch: 5.68x as fast 89.8ms +/- 38.1% 15.8ms +/- 3.5% significant
nbody: *1.15x as slow* 31.2ms +/- 1.8% 36.0ms +/- 2.4% significant
nsieve: 1.84x as fast 13.6ms +/- 5.0% 7.4ms +/- 9.2% significant

bitops: 1.36x as fast 53.2ms +/- 24.0% 39.2ms +/- 2.7% significant
3bit-bits-in-byte: *3.00x as slow* 1.6ms +/- 42.6% 4.8ms +/- 11.6% significant
bits-in-byte: - 9.8ms +/- 44.3% 7.2ms +/- 7.7%
bitwise-and: - 13.4ms +/- 53.9% 8.8ms +/- 6.3%
nsieve-bits: 1.54x as fast 28.4ms +/- 16.6% 18.4ms +/- 3.7% significant

controlflow: 8.71x as fast 36.6ms +/- 1.9% 4.2ms +/- 13.2% significant
recursive: 8.71x as fast 36.6ms +/- 1.9% 4.2ms +/- 13.2% significant

crypto: 1.50x as fast 65.0ms +/- 10.7% 43.4ms +/- 1.6% significant
aes: 2.54x as fast 34.6ms +/- 2.0% 13.6ms +/- 5.0% significant
md5: 1.53x as fast 23.0ms +/- 27.3% 15.0ms +/- 0.0% significant
sha1: *2.00x as slow* 7.4ms +/- 9.2% 14.8ms +/- 3.8% significant

date: 3.55x as fast 265.6ms +/- 0.4% 74.8ms +/- 0.7% significant
format-tofte: 4.73x as fast 148.4ms +/- 0.7% 31.4ms +/- 2.2% significant
format-xparb: 2.70x as fast 117.2ms +/- 1.4% 43.4ms +/- 1.6% significant

math: *2.02x as slow* 50.0ms +/- 5.0% 100.8ms +/- 0.6% significant
cordic: *1.45x as slow* 24.2ms +/- 9.2% 35.0ms +/- 0.0% significant
partial-sums: *2.91x as slow* 17.2ms +/- 6.0% 50.0ms +/- 0.0% significant
spectral-norm: *1.84x as slow* 8.6ms +/- 7.9% 15.8ms +/- 3.5% significant

regexp: 6.15x as fast 237.4ms +/- 0.6% 38.6ms +/- 1.8% significant
dna: 6.15x as fast 237.4ms +/- 0.6% 38.6ms +/- 1.8% significant

string: 1.98x as fast 479.2ms +/- 6.5% 242.2ms +/- 0.7% significant
base64: 1.04x as fast 20.6ms +/- 3.3% 19.8ms +/- 2.8% significant
fasta: 3.91x as fast 134.6ms +/- 22.6% 34.4ms +/- 2.0% significant
tagcloud: 1.30x as fast 112.8ms +/- 0.9% 86.6ms +/- 2.4% significant
unpack-code: 2.90x as fast 160.0ms +/- 0.5% 55.2ms +/- 1.0% significant
validate-input: 1.11x as fast 51.2ms +/- 2.7% 46.2ms +/- 4.4% significant


They weren't joking when they said Javascript performance has been improved. Safari Version 3.1.2 (5525.20.1) as a comparison.
============================================
RESULTS (means and 95% confidence intervals)
--------------------------------------------
Total: 3082.4ms +/- 0.2%
--------------------------------------------

3d: 375.2ms +/- 0.4%
cube: 122.2ms +/- 1.1%
morph: 129.8ms +/- 0.8%
raytrace: 123.2ms +/- 0.5%

access: 486.4ms +/- 0.6%
binary-trees: 63.8ms +/- 1.6%
fannkuch: 230.8ms +/- 1.0%
nbody: 135.4ms +/- 0.5%
nsieve: 56.4ms +/- 2.5%

bitops: 425.4ms +/- 0.7%
3bit-bits-in-byte: 62.6ms +/- 1.1%
bits-in-byte: 94.4ms +/- 1.2%
bitwise-and: 164.2ms +/- 1.6%
nsieve-bits: 104.2ms +/- 0.5%

controlflow: 82.6ms +/- 0.8%
recursive: 82.6ms +/- 0.8%

crypto: 221.6ms +/- 0.5%
aes: 73.8ms +/- 0.8%
md5: 74.0ms +/- 0.0%
sha1: 73.8ms +/- 0.8%

date: 265.8ms +/- 0.5%
format-tofte: 122.6ms +/- 0.9%
format-xparb: 143.2ms +/- 0.4%

math: 417.4ms +/- 0.6%
cordic: 161.2ms +/- 0.6%
partial-sums: 179.6ms +/- 0.9%
spectral-norm: 76.6ms +/- 1.5%

regexp: 199.6ms +/- 0.3%
dna: 199.6ms +/- 0.3%

string: 608.4ms +/- 0.5%
base64: 89.2ms +/- 1.5%
fasta: 167.4ms +/- 0.8%
tagcloud: 122.4ms +/- 0.6%
unpack-code: 123.8ms +/- 0.4%
validate-input: 105.6ms +/- 1.1%


My setup: iMac 2.4 GHz/4 GB RAM/OS X 10.5.5

Download the latest Webkit nightly builds here.

Download the latest Minefield nightly builds here.

So it seems the Webkit nightly is now about 4x faster than Safari. :D

Friday, October 24, 2008

Let the gloating begin

So Apple recently announced their quarterly results and the iPhone is an unprecedented success, firmly entrenched as a viable portable computing device. John Gruber at Daring Fireball and various other Mac-oriented websites are roasting the "analysts" and "experts" who got it so wrong.

Here are some quick thoughts:

1. The App Store. This is the real killer app. Building on Apple's vast experience in online music delivery, installing software couldn't be simpler. Until a competitor understands this and offers a much better alternative, Apple will own this market. It's only a matter of time.

2. Android will not gain mainstream market acceptance. Android is great for tinkerers or people who demand total control of the phone. But since each handset maker can implement their own interface and applications, there is no coherent vision to tie everything together. This makes it hard to market the product well, and also leads to many technical and support issues. The only way for these licensors to differentiate themselves would be based on price, and we know where that leads to.

3. Every engineer should have this Einstein quote on their minds: "Everything should be made as simple as possible, but not simpler." Adding features should not introduce undue complexity, especially when proposed feature is not essential, used infrequently and/or yields insignificant value.

4. Blindly copying features without understanding the context will lead to grief. HP introduced the TouchSmart PC to great fanfare, it is not the first attempt at a touch-screen PC and still has nothing to show for it. Why? HP does not offer any compelling application that demands the use of a touchscreen. Also, it is terrible from a usability and productivity standpoint; I've got to get my hands off the keyboard and mess with the screen just to do something which can already be accomplished with a mouse and keyboard. Put another way, HP chickened out and did not have the courage to completely remove the keyboard and mouse. Not that I blame them, having your hands over a display for prolonged periods of time would be tiring. A multitouch interface on a small portable device on the other hand makes perfect sense because you are constrained by size, weight and ergonomics decisions