Firefox 3 vs Opera 9.50: Performance

Today we're taking a look at performance, especially perceived performance of the web browser including user interface responsiveness. The two contenders are Firefox 3 Beta 5 and Opera 9.50 Beta 2, both aren't finished yet so the results may change in the future.

Much of the results are machine dependend and these results are only to indicate a very small test cases. However the intend was to display efficient use of multiple tabs, idle time, and perceived performance (switching tabs and scrolling).

Hardware
- Intel Core 2 Duo @ 1.8 GHz
- 2 GB, DDR2-667
- 160 GB Seagate, 5400 RPM
- NVIDIA GeForce 8400M GT, 128 MB

Software
- Microsoft Windows Vista Home Premium SP-1, 32-bit
- Firefox 3 Beta 5 (2008032620)
- Opera 9.50 Beta 2 (9945)

Preconditions
- Both web browsers are configured with their default memory settings, cleared caches/cookies/history.
- Each browser is cleared and restarted after each benchmark run.
- All pages are loaded completely.
- Firefox 3 has no additional add-ons enabled.
- Opera 9.50 has Opera Link and Mail disabled.

Multiple tabs
In the first test we open up all these bookmarks in one go. Most importantly is how the CPU resources are utilized. While loading all the tabs is important, it's also important that the user is still able to switch tabs quickly. This is very hard to explain but perceived performance is important but sometimes not easily expressed in numbers.

Dell, Aeon, AniDB.net, Fantasy Real, Formula 1, ING Card, InterfaceLIFT, Kotaku, MotoGP, Postbank, Tokyotosho, Wikipedia, AppleInsider, Ars Technica, BetaNews, Blue's News, CNET, Gamer.nl, Mac Rumors, Neowin.net, One More Thing, OSNews.com, Slashdot, Tweakers.net and Voodoo Extreme.

- Firefox: 0-41-49% (low, avg, high), switch tabs has a delay of ~1s.
- Opera: 0-29-41% (low, avg, high), switch tabs has almost no delay.

HTML/CSS/JS
Bungie.net uses a ticker that scrolls through five top stories. With each interval the image and text changes to reflect one of the five top stories. This switching is measured in each browser and we take the peak level.

- Firefox: 0-2%
- Opera: 0-7%

Flash/JS
Club VAIO is similar in design and uses Adobe's Flash plug-in to switch between 5 top stories. In addition a ticker runs on top with text links. The switching of top stories is measured in each browser and we take the peak level.

- Firefox: 12-35%
- Opera: 4-27%

Flash/JS
If you're making a web browser you can be sure of that one of the most important sites to support for the younger crowd is World of Warcraft. This web site has an intense Flash ticker at the top and uses transparency for the menus. The switching of top stories is measured in each browser and we take the peak level.

- Firefox: 2-52%
- Opera: 5-53%

Scroll speed
When buying a new house you ought to post a lot of pictures. In this test we load the entire page and scroll up and down using the page down and up keys. In this case we measure four times, with and without smooth scrolling (note that Opera comes with smooth scrolling on by default).

- Firefox, without smooth scrolling: 0-20%
- Firefox, with smooth scrolling: 0-42%
- Opera, without smooth scrolling: 0-8%
- Opera, with smooth scrolling: 0-26%

Maximum JS use
Dromaeo is a work in progress JavaScript performance test build by the people at Mozilla. Currently we won't look at the performance numbers yet, but at the CPU peaks. In this case you can clearly see that both browsers are limited to one core, and probably one thread only.

- Firefox: 0-50%, 1757.00ms
- Opera: 0-50%, 2536.00ms

Smart tabbing
In this last test we open up four tabs, in the first three we load Bungie.net, Club VAIO and World of Warcraft. The fourth tab is an empty tab. In an ideal situation the web browser should be aware that you're looking at a blank page and the other tabs don't need to render anything.

- Firefox: 0-2%
- Opera: 0%

When switching to the Bungie.net tab.

- Firefox: 0-8%
- Opera: 0-10%

Conclusion
As far as real performance Firefox seems to win in a few more test cases. However when Firefox wins, Opera doesn't lack much behind. In the case that Opera wins, the difference is bigger. When looking at perceived performance, switching tabs and scrolling, it's clear that Opera feels faster, more responsive. Especially scrolling can be proven by numbers, while opening multiple tabs also shows that Opera has more head room for handling user interface commands from the user. Unfortunately none of the browsers is able to use multi-core technology efficiently yet, as heavy JavaScript or Flash sites leads to 50% usage, which is the maximum of one core.

Of course much of the results are very depended on the machine you're using and the web site you're visiting. Each browser's rendering engine handles the situation on its own and may result it completely different results.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

When it comes to the apparent single threadedness of both browsers, that is actually enforced by the execution model that JavaScript necessitates. JavaScript does not permit more than a single execution queue - scripts must be run to completion, in order, and must not be parallelised in such a way that it can be detected from script. That does not make single threading necessary, but it does make it hard to achieve any form of thread level parallelism. Note that we're just talking about the scripting model and not the UI or plugins. Everything that modifies structures that are script accessible such as the DOM, events etc. must be explicitly serialised from the point of view of the script. That is a bottleneck in using the entirety of CPU resources available.

However, networking, rendering, UI, plugin execution and so on are good places where parallelism can be achieved due to these being on either the input or the output side of the script environment. Or running multiple tabs in multiple threads, that might not help single sites to use the CPU to it's fullest, but it does allow several sites to not have to share the CPU resources with each other.

To really fix this, we'd need one of three things:
- New browser, plugin or DOM APIs that allow parallel execution while still preserving the apparent single threadedness of JavaScript's execution model, by moving all the parallelism into a black box from the perspective of the scripting engine.
- New ECMAScript constructs that allow for the code escaping the execution model using data immutability and message passing.
- New ECMAScript constructs that allow for transaction based programming on shared mutable data.

As it currently stands, there is very little JavaScript code out there that is programmed in a thread safe manner. (JavaScript lacks APIs and primitives to assist with this thread safety, as well...) It wouldn't be safe to even try to parallelise the execution of that code. Just imagine a menu script that on mouseover adds submenus to the DOM and on mouseout deletes them. What would happen if this script were implicitly parallelised by the browser so that more than a single event handler could run at any one time? An example of what could happen is that you're trying to add or delete nodes on subtrees that are in the process of being constructed or destroyed.

. I have analyzed your performance. You made a good conclusion your-selves. Yes, Firefox seems to be a winner, however your intend was to display efficient use of multiple tabs, idle time, and perceived performance and it shows that Opera doesn't stand behind.

Thanks for the comments, everyone. Unfortunately, it’s been my experience that most businesses have horror stories about SEO’s and web design companies.
http://www.englandpokerplayers.co.uk/

Well its quite simple i guess opera is out dated asn has some disadvantages over firefox so i always prefer firefox for my logo design work

Good to read all this keep sharing good stuff!
brochure design website design

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.
  • Web page addresses and e-mail addresses turn into links automatically.

More information about formatting options

Navigation

Chrome 4.0

Chrome 4.0 Beta

Chrome tracker

Firefox 3.6

Firefox tracker

Opera 10.10

Opera tracker

Safari 4.0.4

Safari tracker

User login