Performance Implications of Opera’s Switch to WebKit
I thought I’d be different and instead focus on this shift improves front-end web performance. I’m excited about Opera’s adoption of technology from Chromium because I see several ways this will improve web performance as a whole while making it easier to write faster sites for web developers.
WebKit Layout Engine
The first big area of improved web performance comes from adopting the WebKit layout engine. This improves performance in several many ways.
First of all, there is now one less set of vendor prefixes you need to add to your CSS files. Forget about needing
-o- in the future. It’s also one less vendor you have to wait on to support a new styling feature before removing those vendor prefixes. For those smart web developers using LESS or SASS you didn’t need to worry about this since it was abstracted away. However the net result is that CSS rules, either hand created or programmatically generated, can be slightly smaller. This is good for everyone and is a small performance win.
Second is layout bugs and tag bloat. Often adding an extra empty
<div>, or wrapping a block of content in an extra
<div> are needed to make an area of a page render properly in all browsers. These flaws affect all browsers for the simple reason that laying out HTML is hard, and the correct way to do it is often vague. Reducing the number of layout engines reduces the number and need for these work arounds, slightly reducing the size of HTML.
Next is CSS performance. The performance or features like
box-shadow vary with each layout engine and can be quite slow on mobile. By reducing the number of style/layout engines you need you code to work on, it becomes easier to decide which native CSS features you can or cannot use. This reduces the need for fall backs and results in potentially faster code.
Bugs happen, and we have all seen bugs that directly affect web performance (protocol relative CSS downloads, caching issues, SPDY’s CRIME attack, etc). To resolve bugs you need two things: users to find the bugs and developers to fix the bugs. Making Opera Chromium based and getting rid of Presto and Carakan concentrates more users and more developers onto Webkit, V8, and other area’s of Chromium like the HTTP/SPDY and caching subsystems. More eyeballs will find more bugs more quickly, and more engineerings resources will resolve those bugs faster. This is a big win for software quality, which in turn is a big win for performance.
Hopes and Dreams
So far we have talked a lot about what developers gain with Opera using parts of Chromium, as well as the bug fixes they could contribute back. But what if Opera did more than that?
Remember that Opera announced they were going to be using parts of Chromium. This includes WebKit and V8, but also includes many other important subsystems. Opera also said that “Opera will contribute to the WebKit and Chromium projects.” Got me thinking about what Opera-only features exist today which improve web performance that could be pushed into Chromium? After all, this would allow those features to then incorporated into Google Chrome improving web performance for even more users and web developers. What would I hope and dream of for Opera to contribute into Chromium?
My first thought is HTTP pipelining. Opera is the only browser which does this by default, though it is a very conservative approach. While SPDY is certainly helpful for performance, it requires SSL which will slow its adoption and can even place an upper cap on total adoption. HTTP is not going anywhere and the majority of page load time is still the TTFB for content requests. Using HTTP pipeline to allows for primitive multiplexing of HTTP requests and responses and could be a big win for front-end performance if deployed more widely. I would love to see Opera provide its knowledge, code, and experience around HTTP pipelining back into the Chromium project.
Want to see what performance problems your website has? Zoompf can analyzed your website for 400 issues which affect web performance and load time. You can get a free performance scan of you website now and take a look at our Zoompf WPO product at Zoompf.com today!