Chrome 10: Google whips out its Crankshaft

Google has released a new incarnation of its Chrome browser, adding the revamped Crankshaft JavaScript engine the company unveiled late last year.

This is Chrome 10, if you're keeping track of version numbers. Google wishes you didn't. When releasing a new browser, Mountain View doesn't mention version numbers, preferring to paint Chrome as one monolithic, ever-evolving piece of software. The company is now releasing a new version every six weeks or so. The last version [Shhh. Chrome 9.—Ed] arrived on February 4.

Google first revealed its Crankshaft JavaScript engine in December, claiming it was roughly 50 per cent faster on the company's own V8 benchmark suite. Three weeks ago, it was rolled into the Chrome 10 beta, and now, with the stable release, Google is boasting a 66 per cent speed improvement.

Crankshaft was inspired – at least in part – by Sun's Java HotSpot performance engine, the re-engineered Java virtual machine that first arrived in 1999, according to an exchange between The Reg and Google engineer Eric Kay in December. A number of Google's Crankshaft developers previously worked on HotSpot, including Lars Bak, who led the Sun HotSpot team.

Google's Crankshaft uses "adaptive compilation", identifying important or "hot" code and optimizing that code as needed. Crankshaft includes four basic components: in addition to a base compiler, there's a runtime profile that identifies hot code, and an optimizing compiler that recompiles the hot code to offer such optimizations as loop-invariant code motion, linear-scan register allocation, and inlining. Google then provides "deoptimization support" that identifies cases where the optimizing compiler has promised, well, too much optimization. In this case, the engine falls back on the base compiler.

The approach is somewhat similar to what Mozilla has done with the TraceMonkey extension to its SpiderMonkey JavaScript engine. But TraceMonkey does not use adaptive compilation. It uses, yes, tracing, which detects code loops and coverts them to assembly code. "At a simple level, they both do dynamic optimization," Eric Kay said. "There's one version of the code that gets 'hot,' gets important, and they take a deeper pass on that code."

In addition to the new JavaScript engine, Chrome 10 offers a new settings interface that appears inside a browser tab, rather than a pop-up window. There's a search box for finding the specific setting you're looking for, and you can visit a particular settings page by pasting a URL onto the Chrome address bar. "No more long, frustrating phone conversations with your dad on where to find that specific setting in the browser!" Google says:

Chrome 10 also offers a new tool for synchronizing your Chrome web passwords across multiple machines, and Google has put Chrome's integrated Flash plug-in inside the browser's sandbox technology. The latter perk is only available on Windows Vista or Windows 7.

According to our testing, Google has notremoved the H.264 video codec, as it said it would do earlier this year. On January 11, Google said that over the next couple of months, it would remove the patent-encumbered codec, using only the open source WebM and Ogg Theora codecs for HTML5 video. Google open sourced the WebM codec as a royalty-free alternative to H.264 last May, but Chrome has continued to offer support for H.264, a codec licensed by a patent pool that includes Apple and Microsoft.

But H.264 is still used by Flash, which, as said, comes bundled with Chrome. So, on some level, Google continues to play both sides of the codecs wars. Flash is still Google's technology of choice on YouTube. And let's not forget that Flash is an entrenched advertising technology.

You can download the new Chrome here. If you'te already using Chrome, you'll be updated to the new version automatically. ®

Update: This story has been updated to show that according to our tests, Chrome 10 still includes the H.264 codec.