[webkit-qt] QtWebKit and SunSpider Benchmark: - are these expected results

Jocelyn Turcotte jocelyn.turcotte at digia.com
Tue Feb 19 08:32:16 PST 2013


Hi Stan,

Chrome uses V8, while other ports of WebKit, including Qt, use JavaScriptCore (Qt only uses V8 for QML).
JavaScriptCore has similar performance to V8 on Mac after Apple implemented what they call DFG JIT.
On Windows 32bit it still has basic JIT.
On Windows 64bit it lags way behind, where it's still using the interpreter.

This patch brings basic JIT support for Windows x64 and should be released with Qt 5.1: https://bugs.webkit.org/show_bug.cgi?id=107965
This should be 2x-4x times faster than the interpreter according to my quick tests.
But this still doesn't add support for DFG JIT, still only available on Mac and Linux, which would bring JS performances closer to Chrome's.

So yes sadly I think that this kind of performance is currently expected on Windows x64 with Qt 5.0.

Cheers,
Jocelyn


On Tue, Feb 19, 2013 at 04:07:19PM +0000, Stan Pensak wrote:
> Hello.  I am currently tasked with figuring out what kind of JavaScript performance we can expect out of Qt 5.0.1.  I have created a trivial application to construct a QWebView and run tests in it.  Using this program and running the SunSpider benchmark, I get the following results (Qt 4.8.4, Qt 5.0.1 and Chrome shown for comparison, on Windows 7 64-bit).
> 
> Can someone tell me whether these are the kind of results I should expect, or am I doing something wrong?  I am disappointed that Qt 5.0.1 is only slightly faster than Qt 4.8.4, and a full 7x slower than Chrome.  I expected the V8 engine to improve this considerably.
> 
> Thanks,
> Stan Pensak
> 
> 
> Qt 4.8.4:
> 
> ============================================
> RESULTS (means and 95% confidence intervals)
> --------------------------------------------
> Total:                 1429.4ms +/- 2.3%
> --------------------------------------------
> 
>   3d:                   184.6ms +/- 3.3%
>     cube:                57.2ms +/- 7.9%
>     morph:               64.9ms +/- 4.6%
>     raytrace:            62.5ms +/- 2.0%
> 
>   access:               266.2ms +/- 2.3%
>     binary-trees:        21.6ms +/- 8.7%
>     fannkuch:           151.9ms +/- 1.7%
>     nbody:               64.6ms +/- 4.8%
>     nsieve:              28.1ms +/- 8.4%
> 
>   bitops:               167.8ms +/- 8.0%
>     3bit-bits-in-byte:   37.7ms +/- 4.4%
>     bits-in-byte:        41.5ms +/- 7.6%
>     bitwise-and:         28.9ms +/- 8.8%
>     nsieve-bits:         59.7ms +/- 11.4%
> 
>   controlflow:           26.1ms +/- 10.0%
>     recursive:           26.1ms +/- 10.0%
> 
>   crypto:               110.9ms +/- 6.3%
>     aes:                 49.6ms +/- 10.8%
>     md5:                 31.2ms +/- 11.3%
>     sha1:                30.1ms +/- 4.4%
> 
>   date:                  62.0ms +/- 5.1%
>     format-tofte:        35.2ms +/- 7.6%
>     format-xparb:        26.8ms +/- 2.8%
> 
>   math:                 173.1ms +/- 1.7%
>     cordic:              70.9ms +/- 2.7%
>     partial-sums:        53.5ms +/- 3.5%
>     spectral-norm:       48.7ms +/- 2.2%
> 
>   regexp:               202.0ms +/- 6.7%
>     dna:                202.0ms +/- 6.7%
> 
>   string:               236.7ms +/- 6.8%
>     base64:              38.7ms +/- 7.4%
>     fasta:               45.3ms +/- 5.5%
>     tagcloud:            49.9ms +/- 5.8%
>     unpack-code:         61.0ms +/- 5.4%
>     validate-input:      41.8ms +/- 27.7%
> 
> Qt 5.0.1:
> 
> ============================================
> RESULTS (means and 95% confidence intervals)
> --------------------------------------------
> Total:                 1340.5ms +/- 0.4%
> --------------------------------------------
> 
>   3d:                   133.5ms +/- 0.5%
>     cube:                35.4ms +/- 1.0%
>     morph:               46.8ms +/- 1.0%
>     raytrace:            51.3ms +/- 0.7%
> 
>   access:               175.1ms +/- 1.4%
>     binary-trees:        18.2ms +/- 1.7%
>     fannkuch:            96.4ms +/- 0.9%
>     nbody:               37.8ms +/- 6.8%
>     nsieve:              22.7ms +/- 1.5%
> 
>   bitops:               233.1ms +/- 0.3%
>     3bit-bits-in-byte:   30.2ms +/- 1.5%
>     bits-in-byte:        51.0ms +/- 1.5%
>     bitwise-and:         93.2ms +/- 0.8%
>     nsieve-bits:         58.7ms +/- 1.4%
> 
>   controlflow:           27.1ms +/- 1.9%
>     recursive:           27.1ms +/- 1.9%
> 
>   crypto:                94.0ms +/- 4.9%
>     aes:                 38.6ms +/- 11.7%
>     md5:                 28.2ms +/- 1.6%
>     sha1:                27.2ms +/- 1.1%
> 
>   date:                  68.8ms +/- 2.7%
>     format-tofte:        34.2ms +/- 1.3%
>     format-xparb:        34.6ms +/- 5.4%
> 
>   math:                 151.7ms +/- 0.5%
>     cordic:              60.8ms +/- 1.1%
>     partial-sums:        54.8ms +/- 1.2%
>     spectral-norm:       36.1ms +/- 1.5%
> 
>   regexp:               231.9ms +/- 0.9%
>     dna:                231.9ms +/- 0.9%
> 
>   string:               225.3ms +/- 1.5%
>     base64:              37.3ms +/- 1.3%
>     fasta:               43.0ms +/- 0.8%
>     tagcloud:            48.7ms +/- 5.4%
>     unpack-code:         61.0ms +/- 1.0%
>     validate-input:      35.3ms +/- 1.9%
> 
> Chrome 24.0.1312.57 m:
> 
> ============================================
> RESULTS (means and 95% confidence intervals)
> --------------------------------------------
> Total:                 182.4ms +/- 2.8%
> --------------------------------------------
> 
>   3d:                   28.6ms +/- 3.6%
>     cube:                8.7ms +/- 5.5%
>     morph:               9.0ms +/- 3.7%
>     raytrace:           10.9ms +/- 3.7%
> 
>   access:               16.9ms +/- 3.7%
>     binary-trees:        1.1ms +/- 20.5%
>     fannkuch:            8.2ms +/- 3.7%
>     nbody:               4.9ms +/- 4.6%
>     nsieve:              2.7ms +/- 12.8%
> 
>   bitops:               12.3ms +/- 5.5%
>     3bit-bits-in-byte:   0.6ms +/- 61.5%
>     bits-in-byte:        3.9ms +/- 5.8%
>     bitwise-and:         3.0ms +/- 0.0%
>     nsieve-bits:         4.8ms +/- 6.3%
> 
>   controlflow:           2.0ms +/- 0.0%
>     recursive:           2.0ms +/- 0.0%
> 
>   crypto:               16.9ms +/- 3.7%
>     aes:                 6.0ms +/- 0.0%
>     md5:                 5.5ms +/- 6.8%
>     sha1:                5.4ms +/- 6.8%
> 
>   date:                 18.1ms +/- 3.9%
>     format-tofte:        8.5ms +/- 5.9%
>     format-xparb:        9.6ms +/- 5.2%
> 
>   math:                 15.5ms +/- 4.5%
>     cordic:              2.6ms +/- 14.2%
>     partial-sums:        9.9ms +/- 4.1%
>     spectral-norm:       3.0ms +/- 0.0%
> 
>   regexp:                8.4ms +/- 4.4%
>     dna:                 8.4ms +/- 4.4%
> 
>   string:               63.7ms +/- 3.9%
>     base64:              4.3ms +/- 8.0%
>     fasta:               7.3ms +/- 4.7%
>     tagcloud:           19.9ms +/- 8.0%
>     unpack-code:        22.7ms +/- 3.0%
>     validate-input:      9.5ms +/- 15.6%
> 

> _______________________________________________
> webkit-qt mailing list
> webkit-qt at lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-qt



More information about the webkit-qt mailing list