Mozilla accuses Microsoft of cheating in JavaScript benchmarks for IE 9

Iterating faster than even the Chromium project, Internet Explorer 9 has gained yet another platform preview, the second in three weeks. On the face of it, Platform Preview 7 appears to be focussing on JavaScript performance, with Microsoft posting charts showing it out-performing every other major browser’s latest (even Beta) versions at the SunSpider JavaScript benchmark.

However, the release has been overshadowed by accusations by the developer community that Microsoft had been cheating running particular tests in the SunSpider benchmark. Rob Sayre, a developer and blogger for Mozilla (who develop the competing Firefox product), wrote about how he made two trivial modifications to the “math-cordic” test and got drastically different results. Without the modifications, the test takes 1ms to run in IE 9 Platform Preview 6. With the addition of a simple “true;” statement in the function (which should not impair its run time at all – see the difference in the code here) or with the addition of a “return;” statement at the end (which also should not modify the execution speed of the code significantly – the code difference is also available) the code execution time jumped over 20 times to 22.5 milliseconds (try it for yourself).

While there was much speculation and debate as to this, Microsoft responded with the release of Platform Preview 7, championing real-world performance, once again bemoaning “unrealistic” benchmarks, and talking a lot about their dead-code elimination algorithm (which is one of the many steps used to optimise JavaScript code in modern browsers) as if that were to blame for the radically different results.

You might also like...

Comments

Contribute

Why not write for us? Or you could submit an event or a user group in your area. Alternatively just tell us what you think!

Our tools

We've got automatic conversion tools to convert C# to VB.NET, VB.NET to C#. Also you can compress javascript and compress css and generate sql connection strings.

“Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.” - Antoine de Saint Exupéry