Microsoft Edge benefits significantly from Mozilla's asm.js
One fundamental difference between Internet Explorer and Microsoft Edge, the company's upcoming web browser, is that Microsoft began to integrate third-party technologies into Edge.
One of those technologies is Mozilla's asm.js which provides performance improvements for web applications that are closer to native code than standard JavaScript.
The current version of Microsoft Edge ships with preliminary asm.js integration that users that run recent Windows 10 builds can enable in the browser.
To enable the feature in Edge, type about:flags in the browser's address bar and hit enter. Scroll down until you find "Enable asm.js" and check its box to enable it. You need to restart the browser before the changes take effect.
Edge with asm.js enabled performed more than 300% better in the Unity Benchmark and 200% better performance in Octane's zlib test according to Microsoft.
It is interesting to note that Edge without asm.js performed considerably better than the latest version of Internet Explorer 11.
I ran a series of benchmarks comparing Edge with asm.js to Edge without asm.js on a Windows 10 test system with an Intel Core i5-2500K CPU @ 3.30GHz, 8 Gigabyte of RAM and a NVIDIA GeForce GTX 560 Ti.
Microsoft Edge got an overall score of 32403 points in the Unity Benchmark while the asm.js enabled benchmark almost doubled that score as it landed at 59068 points.
While there are sub-benchmarks where asm.js did not have an effect, Mandelbrot GPU for instance, others differed by (almost) a factor of 10.
The overall score on Google's Octane 2.0 benchmark did not differ much between Edge with and without asm.js but the zlib performance in that benchmark needs specific mentioning as it made a huge jump from 46k to 65k. While I was not able to confirm the 200% improvement that Microsoft noticed when the company ran the benchmark, it is still an impressive gain.
How does this compare to Chrome and Firefox?
I ran the tests again this time with the most recent stable versions of Google Chrome and Mozilla Firefox to see how they would perform under the same conditions and to get a better picture of Edge's performance gains.
Google Chrome scored 46503 in the Unity Benchmark while Mozilla Firefox managed to get a score of 62918 in the same benchmark.
Scores were a lot closer in Google's Octane benchmark. Google Chrome scored 29144 in the benchmark matching Microsoft's Edge's score with asm.js enabled while Firefox scored 25717.
And Internet Explorer 11? The browser came dead last in all benchmarks scoring 14678 points in the Octane benchmark and would not even fully run the Unity benchmark.
Outlook
Benchmarks are not necessarily a reflection of real-world performance but it cannot be denied that Microsoft managed to catch up to Firefox and Google Chrome which is good for everyone.
Now You: Have you tried Microsoft Edge yet?
while i’m somewhat interested in new browser developments, i’m also quite content with my good old firefox, so i don’t have a good enough reason to run and try out new browsers like edge or vivaldi. both browsers still seem to be in early development, so we don’t know yet how they’ll turn out once they hit stable and i also doubt that they can match the customization and functionality that make firefox a favourite of many users.
i’m sure i’ll give both a try _sometime_, but for now i’m good with my dear firefox.
I don’t really understand quite what asm.js is yet so I’ve got a couple naive questions. Can Firefox add-ons and plugins be written entirely in asm.js with access to the same API’s developers use for older plugs. If so, can that carry over so that the plugs are compatible with Edge given an equivalent API layer?
Hi Don.
Asm.js is an interesting piece of technology. It is a format, which is a subset of Javascript language. In practice, it looks like this. Your program is generated as program.js. Inside, you have a valid javascript, that you can run with any browser (Chrome, IE, Firefox). But! That javascript is in such a special format (the asm.js format), that it can be optimized a lot, and browsers which support this (firefox, edge) can take advantage of understanding it and converting it to a much more optimized form instead of evaluating it as javascript.
Asm.js is mostly intended to be used when you write your program in statically-typed language (like C) and translate it into javascript.
Regarding your question about add-ons – yes, indeed, you should be able to write add-ons which are much faster and use asm.js optimizations in future. Regarding carrying over and API access – I am not sure here, situation shouldn’t differ a lot from what is currently in JS world, I think.
There must have been a fundamental change inside Microsoft for them to abandon activex and race more toward browser standards. Apparently those changes have been very good for the browser. I hope they follow html and css standards as closely.
They’ve been working towards abandoning that crap for years. They haven’t really maintained or updated the ActiveX capabilities in years now and only kept it around for compatibility and enterprise reasons.
Same goes for Plugins. They quietly killed Silverlight years ago, with barely a whimper or press release. Having a new browser like Edge has just finally allowed to throw out all of the cruft they’ve been slowly trying to rid themselves of over the years.
I know that HTML5Test is not really something that you can go by these days but they are making progress there as well. So, something is happening finally.
HTML5test was never good for anything as the score is completely arbitrary. A real site for checking standard and spec support is caniuse.com