Original URL: https://www.theregister.com/2010/12/07/google_chrome_crankshaft_javascript_engine_update/

Google speeds Chrome JavaScript engine with 'Crankshaft'

'100 times faster than pre-Chrome Internet Explorer'

By Cade Metz

Posted in Software, 7th December 2010 23:32 GMT

Google has uncloaked a new incarnation of the V8 JavaScript engine that underpins its Chrome browser. Dubbed "Crankshaft," the updated engine is roughly 50 per cent faster on Google's own V8 benchmark suite, according to the company's internal tests.

Google vice president of product management Sundar Pinchai revealed the Craftshaft update this morning during a press event in San Francisco, before delaying the release of Chrome OS and unveiling a beta Chrome OS netbook dubbed the "Cr-48." A 32-bit Intel incarnation of Crankshaft is currently available with the "canary builds" of Chrome, the builds that precede even the developer versions of the browser.

The company is also working on ARM and x64 ports.

According to Pincai, with Craftshaft in place, Chrome is two to three times faster than the average web browser from just two years ago, and he claimed that compared with the 2008 incarnation of Microsoft Internet Explorer, it's one hundred times faster. "Something that took a minute to execute two years ago takes a second to execute today," Pinchai said.

The engine enhancement is particularly adept at handling JavaScript property accesses, arithmetic operations, tight loops, and function calls, according to Google. The company also says that Crankshaft boosts the startup time of web applications, including Gmail. According to Google's page-cycle benchmarks, it improves page-load performance by 12 per cent for pages that contain "significant amounts" of JavaScript.

Craftshaft uses what Pinchai calls an "adaptive compiler." In essence, this is designed to heavily optimize code that's regularly executed but to avoid much optimization with code that's not.

This begins with a base compiler that is, according to the company, twice as fast as the compiler used by the beta version of Chrome 9, and which generates 30 per cent less code. The engine also uses a "runtime profiler" to identify "hot code" — code that users spend a significant amount of time running — and then an "optimizing compiler" recompiles code that has been identified by the profiler. This uses "static single assignment form" compile design to offer such optimizations as loop-invariant code motion, linear-scan register allocation, and inlining.

At the same time, Google includes "deoptimization support," which will identify cases where the optimizing compile is over-promising. In these cases, the engine will then default back to the base compiler.

Given this setup, Google says, you may not see much of a performance improvement on SunSpider and other benchmarks that finish in just a few milliseconds.

Mozilla is currently putting the finishing touches on JagerMonkey, an extension to its SpiderMonkey JavaScript engine designed to offer JavaScript performance "at least on par" with ever other browser on the market. Beginning in October, the open source outfit claimed better SunSpider performance than Google's V8 engine, but it still trailed on the V8 benchmark. Now, it looks like that gap will only widen, not shrink. In the post-Chrome world, it's not easy being Mozilla. ®