Tag Archives: sfx

WebKit-GTK : JSC v/s V8 performance on ARM

As I mentioned in the other post [1], recently I managed to get WebKit-GTK compiled with V8. My previous post presented the performance data between JSC and V8 taken on a x86-64 bit machine and based on the performance metrics, it turns out that, V8 performs better over JSC, at-least in x86-64 bit machine.

Having said that, it would be interesting to see the performance numbers on a ARM device. This post captures the results of V8 and Sun spider on an ARM target.

Reference device:
The reference ARM target used for the performance measurement is Panda Board [2]. Panda board has OMAP4430, 1GHz, Dual core ARM cortex-A9 processor with 1GB of low power DDR2 RAM. I had ARM version of Ubuntu Natty 11.04 running on this device.

Build Configuration:
WebKit Revision : 91387
V8 Revision : 9014

Benchmarking procedure:
There are 3 popular Javascript performance bench-marking tools , viz, V8 bench-marking tool by Google, Sun spider bench-marking tool by WebKit community and Dromaeo bench-marking tool by Mozilla. Here I captured the bench-marking results with V8 and Sun-spider tools. Each of test suite in each tool is run for 5 times and average of these 5 runs is taken for comparison. Data is shared here. I couldn’t able to get the data with Dromaeo[5], as this suite takes longer time and my Panda board used to get over-heated and display used to get turned off before the completion of the test.

V8 benchmarking :
Below graph shows the performance result taken with V8 benchmarking suite[3],

As the chart shows, with exception to ‘Splay’ test case, V8 performs significantly better than JSC! In-fact, this result is almost same as the results taken on x86-64 bit machine [1]. On an average V8 seems to be 3 times faster than JSC.

Sun-Spider benchmarking :
As with V8 benchmarking suite, even sun-spider benchmarking suite[4] also favors V8 (except in 3d and regex test cases) over JSC. On an average there seems to be ~1.5 times increase in performance with V8.

Conclusion:
Well, based on these results, it seems like, V8 performs better over JSC, not only in x86-64 bit machine, but also on an embedded ARM device.

References:
[1]. https://xc0ffee.wordpress.com/2011/08/27/webkit-gtk-jsc-vs-v8/
[2]. http://pandaboard.org/
[3]. http://v8.googlecode.com/svn/data/benchmarks/v6/run.html
[4]. http://www.webkit.org/perf/sunspider-0.9.1/sunspider-0.9.1/driver.html
[5]. http://dromaeo.com/

Advertisements

WebKit-GTK – JSC v/s V8

Well, its been quite some time since I started to work on porting V8 Java Script Engine [1] to WebKit-GTK and recently I managed to get WebKit-GTK running with V8! This work can be found in my gitorious branch at nayankk-webkit. By default, WebKit-GTK will be built with JSC (Java Script Core) Java Script Engine, use the below command for compiling WebKit-GTK with V8 backend,

sh autogen.sh --with-jsengine=v8

After porting V8 to WebKit-GTK, next curious thing, of-course, is to compare the performance of V8 andJSC . Quite some time back, performance comparison on WebKit-Qt port by webkit.sed.hu [2] seems to favor V8 in x86 machine. This blog post captures the performance of WebKit-GTK with JSC and V8 Javascript engines taken on a x86 machine. Performance data on ARM would be the subject of another blog post.

Machine:
Performance data is taken on a quad-core Intel i5 x86 reference machine with 4GB of RAM running at 2.4GHz. Operating system used is Ubuntu Natty 11.04

Build Configuration:
WebKit Revision : 91387
V8 Revision : 9014

Benchmarking procedure:
There are 3 popular Javascript performance bench-marking tools , viz, V8 bench-marking tool by Google, Sun spider bench-marking tool by WebKit community and Dromaeo bench-marking tool by Mozilla. Here I captured the bench-marking results with all 3 tools. Each of test suite in each tool is run for 5 times and average of these 5 runs is taken for comparison. Data is shared here.

V8 benchmarking :
This tools is developed by Google V8 team. Version 6 of this bench-marking tool[3] is  used here for comparison. Here are the results,

As you can see from the graph, V8 defeats JSC by significant margin in all test suites. Note that, higher the score, better the performance.

Sun-Spider benchmarking :
This Java-script bench-marking tools developed by WebKit Team[4]. Results of these tests are here,

Well, these results show that, performance of V8 is slightly less in 3d, bitops and control-flow operations. In rest of all test cases, V8 performs significantly better than JSC.

Dromaeo benchmarking:
Dromaeo[5] has a collection of Java Script performance test suite. Result here are taken for ‘All recommended tests’ of dromaeo.

As with other test suites, Dromaeo also shows significant improvement in performance when V8 engine is used. However, a notable difference is with the test cases using Prototype JS framework, most of which favor JSC over V8.

Conclusion:
As seen with all charts, V8 seems to win against JSC, at-least in x86 machine. However, it would be interesting to see the result on an ARM target, which would be the subject of my next blog post.

References:
[1]. http://code.google.com/p/v8/
[2]. http://webkit.sed.hu/blog/20101216/benchmarking-qtwebkit-v8-linux
[3]. http://v8.googlecode.com/svn/data/benchmarks/v6/run.html
[4]. http://www.webkit.org/perf/sunspider-0.9.1/sunspider-0.9.1/driver.html
[5]. http://dromaeo.com/