Massive ASM

Massive ASM.JS benchmark_winbuzzer

Benchmarks of Microsoft Edge´s WebGL performance give good but partly unclear results. As ASM.JS is one key performance factor for the future, it´s good to see how Edge, Firfox and Chrome perform there.

In our Unity Benchmark with Edge, Chrome 44 and Firefox 39 we got some unclear results. While Edge with asm.js turned on can claim the highest overall score, Firefox wins in a bigger number of subtests. As the Unity Benchmark is no pure ASM.JS benchmark, we re-do our comparison. Luckily the Massive asm.js benchmark allows us to do so.


 –> Unity WebGL Benchmark with asm.js: Microsoft Edge vs. Google Chrome 44 vs. Firefox 39



What is ASM.JS?

Asm.js a subset of Javascript which allows for incredible performance gains.Programming code in C can be automatically compiled to ASM.js and then run at about half the speed than the native code, like in a real app/program.

To say it in other words: Complex programs like 3D videogames can be compiled to Javascript code and then run directly in your browser. And that´s exactly what will be needed for complex and visually rich websites running on WebGL.

Below is just one example of a 3D shooter using WebGL with asm.js in fullscreen mode. On GitHub you find more impressive asm.js examples.

BananaBread: A 3D first person shooter game compiled to JS+WebGL

TIP: If you want to run Edge with asm.js – you need to turn it on manually. The version of Edge coming with Windows 10 has it turned off as Microsoft is still working on a stable implementation.


–> Making Microsoft Edge even faster: How to enable asm.js javascript support



What the Massive ASM.JS benchmark measures

The Massive ASM.JS Benchmark uses four different subsets of tests. If you want to know more check out the detailed information on their website.

  • Main Thread Responsiveness measures the user experience as a large codebase is loaded. What is tested is whether the main thread stalls as the codebase is prepared and executed for a short while. This does not measure how much time is spent, but only how responsive or unresponsive the user experience is.
  • Throughput measures how fast a large computational workload runs. This is what is typically measured by benchmarks. Massive’s throughput tests focus on very large real-world codebases.
  • Preparation measures how long (in wall time) is spent to get a codebase ready to execute and before executing any of it.”Preparation” is basically all the time before code is actually able to run; that may include parsing, conversion to bitcode, JIT compilation, etc., depending on the JS engine.
  • Variance measures how variable the frame rate is in an application that needs to run in each frame (this is important in things like games, which must finish all they need every 1/60 of a second, in order to be smooth). The Massive asm.js benchmark runs many frames and then calculates the statistical variance and worst case.

Massive ASM.JS benchmark results: Microsoft Edge vs. Google Chrome 44 vs. Firefox 39

Unlike in our WebGL comparison with the Unity Benchmark, with ASM.JS Firefox is the clear winner.

But as you can also see, Edge´s ASM.JS performance is 50% higher than with Google chrome. At the moment Microsoft Edge offers only experimental support for ASM.JS which is turned off per default. Until its final implementation we can expect further improvements.

You might be surprised to see Internet Explorer 11 in the table. Yes! Microsoft is still improving IE and has added ASM.JS support to the Chakra Javascrip engine of Windows 10.

[table id=2 /]


Specs of the used system

  • ASRock H97M Pro4 Intel H97
  • Intel Core i7 4770K 4x 3.50GHz
  • 8GB (2x 4096MB) Corsair Vengeance Black DDR3-1600 DIMM CL8-8-8-24
  • SSD 128GB Samsung 840 Pro Series 2.5″
  • Windows 10 Technical Preview build 9929
  • Intel HD Graphics 4600