Paul Krill
Editor at Large

Mozilla’s asm.js uses JavaScript to improve Web performance

analysis
May 31, 20132 mins

C and C++ apps get Web boost from a JavaScript subset that allows Web browsers to better perform optimization

With its asm.js project, Mozilla is promoting a subset of JavaScript intended to improve Web application performance and extend C and C++ applications to the Web.

Asm.js can be used as a low-level, efficient target language for compilers, according to the asm.js specification. Mozilla’s goal has been to provide a high-performance target for applications written in low-level languages like C/C++, said Luke Wagner, a software engineer at Mozilla. By itself, asm.js does not make existing handwritten JavaScript faster, he said. “However, Web developers are very creative, and we expect them do a lot more with asm.js than just generation from C/C++.” The Emscripten tool can compile C and C++ applications to asm.js, thus making them run faster.

“The key [to as.js] is a simple formal definition of the high-performance ‘sweet spot,'” Wagner said. “This enables asm.js-generators like Emscripten, Mandreel, LLJS, and others to get a hard confirmation that they hit the spot. It also allows the browser’s JavaScript engine to more easily and predictably perform aggressive optimization.” Existing JavaScript engines can optimize this subset of JavaScript; asm.js proponents have already seen Firefox and Chrome achieve large speed-ups in a short time, said Wagner.

While asm.js has been cited for its usefulness in game development, enterprise applications also can benefit from it, JavaScript blogger Axel Rauschmayer said at the O’Reilly Fluent conference in San Francisco this week. He cites two main advantages of asm.js. “Advantage number 1, you get to compile existing C and C++ code — and there’s a lot of that code out there. You can compile it and run it very fast on the Web,” Rauschmayer said. “The second advantage is that it’s a neat compilation target for languages that are not JavaScript. You can more easily compile some languages so that they’ll run on the Web platform and they’ll run very fast.”

Proponents of asm.js have planned additional Web APIs for compiling to asm.js in background threads and to store results of compilation offline. This would improve startup in future application loads.

This story, “Mozilla’s asm.js uses JavaScript to improve Web performance,” was originally published at InfoWorld.com. Get the first word on what the important tech news really means with the InfoWorld Tech Watch blog. For the latest developments in business technology news, follow InfoWorld.com on Twitter.

Paul Krill

Paul Krill is editor at large at InfoWorld. Paul has been covering computer technology as a news and feature reporter for more than 35 years, including 30 years at InfoWorld. He has specialized in coverage of software development tools and technologies since the 1990s, and he continues to lead InfoWorld’s news coverage of software development platforms including Java and .NET and programming languages including JavaScript, TypeScript, PHP, Python, Ruby, Rust, and Go. Long trusted as a reporter who prioritizes accuracy, integrity, and the best interests of readers, Paul is sought out by technology companies and industry organizations who want to reach InfoWorld’s audience of software developers and other information technology professionals. Paul has won a “Best Technology News Coverage” award from IDG.

More from this author