Edge Javascript improvements coming with Windows 10 Anniversary Update, scoring well on “synthetic” benchmarks

Kareem Anderson

It’s been said before and will probably be said again shortly, Microsoft’s Edge browser has some growing to do when compared to the current crop of web browsing experiences available to users. Fortunately, the Edge team is working rather quickly to implement many of the missing standards and or features users have been seeking when considering the browser as a viable alternative.

Take for instance the work the Edge team has done around JavaScript performance:

…it has been our mission and priority to make JavaScript faster for the real world web, and to continuously improve the experience of browsing in Microsoft Edge (and previously Internet Explorer).

By taking its Chakra JavaScript engine open-source, delivering Es2015 & beyond, and experimenting with WebAssembly over the past year, the team has gathered a boatload of useful user feedback and telemetry. The data collected over the past year has helped the edge team develop updates to its JavaScript performance in Edge and Chakra in preparation for its Windows 10 Anniversary Update release.

Improvements now include:

Memory optimizations in functions

One of the code patterns on the web is the abundance of small-sized functions in scripts. This isn’t particularly a surprise as it is common developer practice to break down complex coding logic into many smaller pieces. The practice reduces repetitiveness and makes reading, debugging and testing the code much easier. Even better it can have a performance advantage as smaller functions are generally easier to inline, and the profiler can target the ‘hottest’ ones to produce JIT’ed code.

Deferred parsing for event-handlers

Taking advantage of the formerly introduced deferred-parsing feature, Microsoft Edge, and Chakra now delays the full parsing and bytecode generation of event handlers until when they are first called. Chakra uses a smaller representation for partially-parsed handlers, so the optimization not only improves the start-up time but also saves memory from any unused handlers.

When combined with real world usage, Microsoft’s Edge browser leads in several synthetic JavaScript benchmarks that include examining 64-bit browsing using OCTANE 2.0 and JETSTREAM 1.1.

Synthetic benchmarks for Edge
Synthetic benchmarks for Edge

With performance tweaking being a moving target, the Edge team will undoubtedly be issuing more improvements over time, but developers interested in following the day to day operations of Edge and its updates can visit the Microsoft Edge Dev blog or the teams via their various Twitter handles. Another way to follow the development of the Edge browser is to join the Windows 10 Insider Preview which enables a more hands-on approach of examining performance and features.