Massive Benchmark highlights asm.js performance of web browsers
Performance or more precisely JavaScript performance has been a thing in the browser world ever since Google launched its Chrome browser to the public.
Back then Chrome was without doubt the most optimized browser when it came to the execution of JavaScript. This was a wake-up call for Mozilla and Microsoft as they started to improve the JavaScript performance and overall snappiness of their browsers as well in order to compete with Google.
JavaScript performance is not really used anymore in these days to show the superiority of a browser over others. While it is still an important metric for developers, it is not really something that end users show much interest in anymore.
This could change again with the rise of HTML5 gaming though. Demos of Epic's Unreal 3 and 4 engine that run in web browsers benefit a lot from optimizations.
This time, Mozilla is leading the field when it comes to performance. A new benchmark for asm.js has been created to highlight how browsers perform in this area.
While it is not the first appearance of an asm.js test, as Octane has one test that does that, it is taking these tests to the next level by using large source files instead of smaller ones that are usually found in benchmarks.
Considering that both the Unreal engine and the Unity engine are large codebase-wise, its large nature ensures that the test comes closer to real-world requirements than before.
If you are interested in running the benchmark on your system head over to the Massive page on Github to do so. Just click on run and wait for the test to complete.
Here are results for browsers running on an Intel Core i7, 8 GB of RAM, Nvidia Geforce GTX 470 Windows 7 Pro 64-bit and a Intel Core I5 2500k, 8 GB of RAM, Nvidia GeForce GTX 560 Ti Windows 10 system.
Windows 7
Test | Firefox 36 Nightly | Chromium 40 | Opera 27 Dev | Internet Explorer 11 |
Overall | 4611 | 1595 | 1611 | 1089 |
main-thread-poppler-cold | 0.499s | 1.712s | 1.692s | 1.809s |
main-thread-poppler-warm | 0.470s | 2.051s | 1.543s | 1.738s |
main-thread-sqlite-cold | 0.122s | 0.821s | 0.803s | 0.657s |
main-thread-sqlite-warm | 0.069s | 0.266s | 0.403s | 0.640s |
box2d-throughput | 6.891ms | 8.348ms | 8.266ms | 16.947ms |
box2d-throughput-f32 | 5.577ms | 12.157ms | 11.959ms | 37.628ms |
lua-binarytrees | 9.162s | 15.380s | 14.892s | 26.903s |
lua-scimark | 8.775 MFLOPS | 5.350 MFLOPS | 5.520 MFLOPS | 2.895 MFLOPS |
poppler-throughput | 6.557s | 14.857s | 14.389s | 31.747s |
sqlite-throughput | 10.748s | 59.618s | 58.859s | 63.024s |
poppler-cold-preparation | 0.817s | 0.462s | 0.450s | 0.172s |
poppler-warm-preparation | 0.153s | 0.445s | 0.421s | 0.175s |
sqlite-cold-preparation | 0.805s | 0.988s | 1.015s | 3.851s |
sqlite-warm-preparation | 0.098s | 1.007s | 1.002s | 4.904s |
box2d-variance | 2.124ms | 54.117ms | 53.376ms | 89.343ms |
poppler-variance | 4.764ms | 31.577ms | 30.032ms | 39.046ms |
Windows 10
Test | Firefox 33.0.2 | Chrome 38 | Internet Explorer 11 |
overall | 5990 | 2028 | |
main-thread-poppler-cold | 0.32s | 1.280s | 1.090s |
main-thread-poppler-warm | 0.321s | 1.803s | 1.054s |
main-thread-sqlite-cold | 0.062s | 0.640s | 0.590s |
main-thread-sqlite-warm | 0.026s | 0.175s | 0.562s |
box2d-throughput | 4.893ms | 6.429ms | 7.686ms |
box2d-throughput-f32 | 4.456ms | 10.382ms | 16.663ms |
lua-binarytrees | 6.518s | 10.902s | 17.501ms |
lua-scimark | 11.900 MFLOPS | 7.685 MFLOPS | 3.890 MFLOPS |
poppler-throughput | 5.245s | 11.457s | failed |
sqlite-throughput | 7.306s | 42.386s | |
poppler-cold-preparation | 0.607s | 0.358s | |
poppler-warm-preparation | 0.127s | 0.329s | |
sqlite-cold-preparation | 0.600s | 0.845s | |
sqlite-warm-preparation | 0.081s | 0.849s | |
box2d-variance | 1.122ms | 53.163ms | |
poppler-variance | 3.788ms | 27.694ms |
Internet Explorer 11 on Windows 10 got stuck on the poppler-throughput test. Firefox beats the competition in most tests with the exception of poppler-cold-preparation where it came last.