A bunch of exciting things have happened to Konqueror in preparation for 4.1 Beta 1 this weekend.
First of all, KHTML guru Germain Garand has committed the bulk of the designMode/contentEditable editing code. It's not 100% done yet, but it's a monumental amount of work, and it should enable the various rich-text editor apps to work in KHTML.
In the UI land, Eduardo Elvira has committed some fancy session management features such as crash recovery.
But, I am gonna be bit a bit selfish, and mostly talk about what I did: my performance/bytecode version of KJS - KJS "Frostbyte" - is now in kdelibs trunk, and part of KDE4.1 Beta 1. This brings some significant pure ES performance improvements over previous versions, and lets us put up some great numbers. On the SunSpider benchmark suite, this version does:
- 2.27x better than Firefox 2
- 2x better than QtWebKit from Qt4.4
- About 1.4x faster than KJS 4.0 "Blizzard"
- About 1.152x faster overall than Opera 9.5 beta 2, but it's really a wash, with both engines winning lots of individual benchmarks...
.. but about 1.77x slower than Firefox 3rc1. Ouch. Well, at least we beat them on Acid3, and it might just keep my head from getting too big. Great job by the Mozilla guys there, though. And the Apple guys of course aren't standing still either --- the development versions of JavaScriptCore/Safari have excellent optimizations we lack, and will likely be getting their own bytecode engine, SquirrelFish, soon (I name things after weather. They name them after weird animals. I think you can see who lives in California, and who lives in New York State).
Thankfully, I have some tricks left up my sleeve. Which isn't very comfortable, since I am wearing a t-shirt.
And if you care, or are really bored, the numbers are under the cut.
vs. Firefox 2:
TEST COMPARISON FROM TO DETAILS
=============================================================================
** TOTAL **: 2.27x as fast 16813.0ms +/- 0.7% 7409.6ms +/- 4.3% significant
=============================================================================
3d: 2.92x as fast 2612.4ms +/- 0.6% 895.8ms +/- 7.5% significant
cube: 2.08x as fast 669.2ms +/- 2.0% 321.0ms +/- 9.9% significant
morph: 5.28x as fast 1531.0ms +/- 0.5% 290.2ms +/- 5.9% significant
raytrace: 1.45x as fast 412.2ms +/- 0.5% 284.6ms +/- 6.7% significant
access: 1.60x as fast 1496.6ms +/- 3.9% 933.2ms +/- 4.8% significant
binary-trees: 1.81x as fast 271.8ms +/- 18.3% 150.4ms +/- 2.1% significant
fannkuch: ?? 350.2ms +/- 6.5% 350.6ms +/- 1.9% not conclusive: might be *1.001x as slow*
nbody: 1.80x as fast 636.2ms +/- 0.8% 353.2ms +/- 11.7% significant
nsieve: 3.02x as fast 238.4ms +/- 0.6% 79.0ms +/- 1.1% significant
bitops: 4.51x as fast 4300.6ms +/- 2.6% 952.8ms +/- 2.2% significant
3bit-bits-in-byte: 2.41x as fast 334.2ms +/- 0.5% 138.6ms +/- 6.8% significant
bits-in-byte: 1.67x as fast 303.8ms +/- 0.8% 182.0ms +/- 5.0% significant
bitwise-and: 7.34x as fast 3383.0ms +/- 3.1% 460.6ms +/- 3.7% significant
nsieve-bits: 1.63x as fast 279.6ms +/- 2.2% 171.6ms +/- 3.8% significant
controlflow: *1.055x as slow* 185.0ms +/- 0.5% 195.2ms +/- 1.6% significant
recursive: *1.055x as slow* 185.0ms +/- 0.5% 195.2ms +/- 1.6% significant
crypto: 1.38x as fast 690.2ms +/- 0.5% 499.2ms +/- 2.1% significant
aes: 1.68x as fast 258.4ms +/- 0.9% 153.6ms +/- 1.4% significant
md5: 1.21x as fast 213.0ms +/- 0.4% 175.6ms +/- 2.4% significant
sha1: 1.29x as fast 218.8ms +/- 0.5% 170.0ms +/- 3.2% significant
date: 2.36x as fast 1960.2ms +/- 0.6% 831.6ms +/- 3.7% significant
format-tofte: 2.07x as fast 768.2ms +/- 0.2% 371.4ms +/- 3.4% significant
format-xparb: 2.59x as fast 1192.0ms +/- 0.9% 460.2ms +/- 4.1% significant
math: 1.55x as fast 1466.8ms +/- 0.8% 947.8ms +/- 7.0% significant
cordic: 1.49x as fast 555.8ms +/- 1.4% 373.4ms +/- 6.7% significant
partial-sums: 1.71x as fast 594.2ms +/- 1.5% 348.0ms +/- 7.4% significant
spectral-norm: 1.40x as fast 316.8ms +/- 0.5% 226.4ms +/- 7.1% significant
regexp: 1.125x as fast 514.8ms +/- 0.6% 457.4ms +/- 0.7% significant
dna: 1.125x as fast 514.8ms +/- 0.6% 457.4ms +/- 0.7% significant
string: 2.11x as fast 3586.4ms +/- 0.4% 1696.6ms +/- 4.8% significant
base64: 3.75x as fast 995.8ms +/- 0.9% 265.6ms +/- 10.7% significant
fasta: 1.57x as fast 683.2ms +/- 0.6% 434.6ms +/- 2.6% significant
tagcloud: 1.58x as fast 491.2ms +/- 1.4% 310.4ms +/- 2.8% significant
unpack-code: 3.21x as fast 1080.0ms +/- 0.3% 336.6ms +/- 4.7% significant
validate-input: *1.039x as slow* 336.2ms +/- 0.2% 349.4ms +/- 5.2% significant
vs. QtWebKit 4.4:
=============================================================================
** TOTAL **: 2.02x as fast 14941.0ms +/- 0.3% 7409.6ms +/- 4.3% significant
=============================================================================
3d: 2.21x as fast 1982.4ms +/- 0.5% 895.8ms +/- 7.5% significant
cube: 1.94x as fast 621.2ms +/- 0.4% 321.0ms +/- 9.9% significant
morph: 2.71x as fast 787.2ms +/- 0.7% 290.2ms +/- 5.9% significant
raytrace: 2.02x as fast 574.0ms +/- 0.8% 284.6ms +/- 6.7% significant
access: 2.93x as fast 2733.2ms +/- 0.4% 933.2ms +/- 4.8% significant
binary-trees: 1.60x as fast 240.4ms +/- 0.6% 150.4ms +/- 2.1% significant
fannkuch: 3.30x as fast 1155.4ms +/- 0.8% 350.6ms +/- 1.9% significant
nbody: 1.63x as fast 575.6ms +/- 0.3% 353.2ms +/- 11.7% significant
nsieve: 9.64x as fast 761.8ms +/- 0.4% 79.0ms +/- 1.1% significant
bitops: 2.65x as fast 2520.4ms +/- 1.0% 952.8ms +/- 2.2% significant
3bit-bits-in-byte: 3.77x as fast 522.0ms +/- 0.6% 138.6ms +/- 6.8% significant
bits-in-byte: 3.64x as fast 663.2ms +/- 1.2% 182.0ms +/- 5.0% significant
bitwise-and: 1.34x as fast 617.0ms +/- 3.8% 460.6ms +/- 3.7% significant
nsieve-bits: 4.19x as fast 718.2ms +/- 1.0% 171.6ms +/- 3.8% significant
controlflow: 1.73x as fast 337.2ms +/- 0.7% 195.2ms +/- 1.6% significant
recursive: 1.73x as fast 337.2ms +/- 0.7% 195.2ms +/- 1.6% significant
crypto: 2.55x as fast 1270.8ms +/- 0.5% 499.2ms +/- 2.1% significant
aes: 2.30x as fast 353.6ms +/- 0.4% 153.6ms +/- 1.4% significant
md5: 2.65x as fast 465.4ms +/- 0.6% 175.6ms +/- 2.4% significant
sha1: 2.66x as fast 451.8ms +/- 0.7% 170.0ms +/- 3.2% significant
date: 2.10x as fast 1742.6ms +/- 0.3% 831.6ms +/- 3.7% significant
format-tofte: 1.52x as fast 563.0ms +/- 0.3% 371.4ms +/- 3.4% significant
format-xparb: 2.56x as fast 1179.6ms +/- 0.3% 460.2ms +/- 4.1% significant
math: 1.86x as fast 1761.0ms +/- 0.4% 947.8ms +/- 7.0% significant
cordic: 2.59x as fast 968.8ms +/- 0.6% 373.4ms +/- 6.7% significant
partial-sums: 1.160x as fast 403.8ms +/- 0.5% 348.0ms +/- 7.4% significant
spectral-norm: 1.72x as fast 388.4ms +/- 0.9% 226.4ms +/- 7.1% significant
regexp: *1.069x as slow* 427.8ms +/- 0.7% 457.4ms +/- 0.7% significant
dna: *1.069x as slow* 427.8ms +/- 0.7% 457.4ms +/- 0.7% significant
string: 1.28x as fast 2165.6ms +/- 0.3% 1696.6ms +/- 4.8% significant
base64: 1.98x as fast 526.4ms +/- 0.2% 265.6ms +/- 10.7% significant
fasta: 1.33x as fast 579.8ms +/- 0.5% 434.6ms +/- 2.6% significant
tagcloud: 1.187x as fast 368.4ms +/- 1.6% 310.4ms +/- 2.8% significant
unpack-code: - 339.6ms +/- 0.5% 336.6ms +/- 4.7%
validate-input: - 351.4ms +/- 0.2% 349.4ms +/- 5.2%
vs Opera 9.5b2:
TEST COMPARISON FROM TO DETAILS
=============================================================================
** TOTAL **: 1.152x as fast 8538.4ms +/- 0.5% 7409.6ms +/- 4.3% significant
=============================================================================
3d: *1.110x as slow* 807.0ms +/- 1.6% 895.8ms +/- 7.5% significant
cube: *1.37x as slow* 234.0ms +/- 3.6% 321.0ms +/- 9.9% significant
morph: 1.142x as fast 331.4ms +/- 2.2% 290.2ms +/- 5.9% significant
raytrace: *1.178x as slow* 241.6ms +/- 1.5% 284.6ms +/- 6.7% significant
access: 1.193x as fast 1113.4ms +/- 0.8% 933.2ms +/- 4.8% significant
binary-trees: *1.81x as slow* 83.0ms +/- 2.4% 150.4ms +/- 2.1% significant
fannkuch: 1.57x as fast 548.8ms +/- 0.2% 350.6ms +/- 1.9% significant
nbody: *1.45x as slow* 243.0ms +/- 0.9% 353.2ms +/- 11.7% significant
nsieve: 3.02x as fast 238.6ms +/- 1.7% 79.0ms +/- 1.1% significant
bitops: 1.21x as fast 1154.0ms +/- 1.2% 952.8ms +/- 2.2% significant
3bit-bits-in-byte: *1.23x as slow* 113.0ms +/- 0.8% 138.6ms +/- 6.8% significant
bits-in-byte: ?? 179.0ms +/- 2.4% 182.0ms +/- 5.0% not conclusive: might be *1.017x as slow*
bitwise-and: 1.21x as fast 557.2ms +/- 1.1% 460.6ms +/- 3.7% significant
nsieve-bits: 1.78x as fast 304.8ms +/- 2.1% 171.6ms +/- 3.8% significant
controlflow: *1.72x as slow* 113.2ms +/- 2.1% 195.2ms +/- 1.6% significant
recursive: *1.72x as slow* 113.2ms +/- 2.1% 195.2ms +/- 1.6% significant
crypto: *1.070x as slow* 466.4ms +/- 1.2% 499.2ms +/- 2.1% significant
aes: 1.41x as fast 217.2ms +/- 1.0% 153.6ms +/- 1.4% significant
md5: *1.41x as slow* 124.2ms +/- 2.9% 175.6ms +/- 2.4% significant
sha1: *1.36x as slow* 125.0ms +/- 1.4% 170.0ms +/- 3.2% significant
date: 1.27x as fast 1054.0ms +/- 0.8% 831.6ms +/- 3.7% significant
format-tofte: - 378.2ms +/- 1.1% 371.4ms +/- 3.4%
format-xparb: 1.47x as fast 675.8ms +/- 0.7% 460.2ms +/- 4.1% significant
math: *1.36x as slow* 699.4ms +/- 0.7% 947.8ms +/- 7.0% significant
cordic: *1.23x as slow* 302.8ms +/- 1.1% 373.4ms +/- 6.7% significant
partial-sums: *1.34x as slow* 259.0ms +/- 1.7% 348.0ms +/- 7.4% significant
spectral-norm: *1.65x as slow* 137.6ms +/- 1.8% 226.4ms +/- 7.1% significant
regexp: 2.24x as fast 1024.0ms +/- 0.5% 457.4ms +/- 0.7% significant
dna: 2.24x as fast 1024.0ms +/- 0.5% 457.4ms +/- 0.7% significant
string: 1.24x as fast 2107.0ms +/- 0.8% 1696.6ms +/- 4.8% significant
base64: *1.40x as slow* 190.0ms +/- 2.4% 265.6ms +/- 10.7% significant
fasta: - 434.4ms +/- 1.3% 434.6ms +/- 2.6%
tagcloud: 1.24x as fast 383.4ms +/- 0.7% 310.4ms +/- 2.8% significant
unpack-code: 2.63x as fast 883.6ms +/- 1.2% 336.6ms +/- 4.7% significant
validate-input: *1.62x as slow* 215.6ms +/- 1.7% 349.4ms +/- 5.2% significant
vs Firefox 3.0rc1:
EST COMPARISON FROM TO DETAILS
=============================================================================
** TOTAL **: *1.77x as slow* 4178.4ms +/- 2.0% 7409.6ms +/- 4.3% significant
=============================================================================
3d: *1.78x as slow* 502.8ms +/- 0.8% 895.8ms +/- 7.5% significant
cube: *1.74x as slow* 184.2ms +/- 0.9% 321.0ms +/- 9.9% significant
morph: *1.85x as slow* 156.6ms +/- 0.4% 290.2ms +/- 5.9% significant
raytrace: *1.76x as slow* 162.0ms +/- 1.4% 284.6ms +/- 6.7% significant
access: *1.63x as slow* 573.8ms +/- 5.1% 933.2ms +/- 4.8% significant
binary-trees: *2.24x as slow* 67.2ms +/- 1.5% 150.4ms +/- 2.1% significant
fannkuch: *1.58x as slow* 221.8ms +/- 0.6% 350.6ms +/- 1.9% significant
nbody: *1.69x as slow* 209.0ms +/- 14.0% 353.2ms +/- 11.7% significant
nsieve: *1.042x as slow* 75.8ms +/- 0.7% 79.0ms +/- 1.1% significant
bitops: *2.43x as slow* 392.4ms +/- 1.3% 952.8ms +/- 2.2% significant
3bit-bits-in-byte: *2.13x as slow* 65.0ms +/- 1.4% 138.6ms +/- 6.8% significant
bits-in-byte: *1.86x as slow* 97.6ms +/- 0.7% 182.0ms +/- 5.0% significant
bitwise-and: *4.64x as slow* 99.2ms +/- 2.2% 460.6ms +/- 3.7% significant
nsieve-bits: *1.31x as slow* 130.6ms +/- 2.7% 171.6ms +/- 3.8% significant
controlflow: *3.75x as slow* 52.0ms +/- 0.0% 195.2ms +/- 1.6% significant
recursive: *3.75x as slow* 52.0ms +/- 0.0% 195.2ms +/- 1.6% significant
crypto: *2.02x as slow* 247.2ms +/- 0.7% 499.2ms +/- 2.1% significant
aes: *1.68x as slow* 91.6ms +/- 1.2% 153.6ms +/- 1.4% significant
md5: *2.28x as slow* 77.0ms +/- 0.0% 175.6ms +/- 2.4% significant
sha1: *2.16x as slow* 78.6ms +/- 0.9% 170.0ms +/- 3.2% significant
date: *1.74x as slow* 478.2ms +/- 0.9% 831.6ms +/- 3.7% significant
format-tofte: *1.28x as slow* 290.6ms +/- 1.0% 371.4ms +/- 3.4% significant
format-xparb: *2.45x as slow* 187.6ms +/- 1.0% 460.2ms +/- 4.1% significant
math: *1.87x as slow* 507.8ms +/- 9.0% 947.8ms +/- 7.0% significant
cordic: *1.93x as slow* 193.6ms +/- 0.6% 373.4ms +/- 6.7% significant
partial-sums: *1.69x as slow* 205.8ms +/- 3.9% 348.0ms +/- 7.4% significant
spectral-norm: *2.09x as slow* 108.4ms +/- 38.2% 226.4ms +/- 7.1% significant
regexp: *1.36x as slow* 335.4ms +/- 4.7% 457.4ms +/- 0.7% significant
dna: *1.36x as slow* 335.4ms +/- 4.7% 457.4ms +/- 0.7% significant
string: *1.56x as slow* 1088.8ms +/- 0.6% 1696.6ms +/- 4.8% significant
base64: *2.20x as slow* 120.8ms +/- 2.0% 265.6ms +/- 10.7% significant
fasta: *1.71x as slow* 254.4ms +/- 0.8% 434.6ms +/- 2.6% significant
tagcloud: *1.49x as slow* 208.4ms +/- 1.9% 310.4ms +/- 2.8% significant
unpack-code: 1.076x as fast 362.2ms +/- 2.4% 336.6ms +/- 4.7% significant
validate-input: *2.44x as slow* 143.0ms +/- 0.9% 349.4ms +/- 5.2% significant
wow
wow re performance and wow^n re Acid3. You guys are amazing
Impressed
Great stuff. Once again goes to show that the KHTML team is one of KDE's crown jewels, doing world-class work.
Excellent
Really I want to test Konq. 4.1 as soon as I can. Specially to test WYSITWG editors !!
-----------
http://www.itwadi.com
Cool!
*recompiling everything now*
Wow!
Very nice work guys!
google-friendly?
Will konqueror 4.1 be able to manage google-notebook?