Battle of the Web browsers: HTML5 and memory tests

How Chrome, Firefox, Internet Explorer, Opera, and Safari rank in HTML5 compatibility and memory consumption

Should you care about the level of HTML5 support in your browser? Maybe not now, but it all depends upon what the content producers do. Most websites don't require any of the new features in the fifth edition of the HTML standard, and most will probably take their time adopting them until they're quite standard. Only the bravest developers will try them first while they're not supported broadly.

[ Find out which of the leading browsers is the perfect balance of features, speed, innovation, and flexibility for you. See "The best Web browser: Chrome, Firefox, Internet Explorer, Opera, or Safari?" ]

The website does a good job of working through a checklist of HTML5 features to see how many a browser supports. Here are the scores (from 0 to 300) for each of the browsers reviewed. The bonus points are given for extra support of codecs and other options.

HTML5 compatibility test

  HTML5 Test Score Bonus Points
Chrome 5.0 197 7
Firefox 4.0 beta 189 9
Internet Explorer 8.0 / 9.0 beta 27 / 84 0 / 1
Opera 10.60 159 7
Safari 5.0 207 7

The IE scores look quite bad, but this doesn't necessarily indicate that IE is lacking in new features. Microsoft just has its own version. The HTML5 standard embraces Scalable Vector Graphics (SVG) and the Canvas element. Microsoft implemented something called Vector Markup Language (VML) that does pretty much the same thing. But anything that can be undone by petty infighting can be unified with an additional layer of code. Someone has already written an AJAX library to start abstracting away the differences; see ExplorerCanvas.

A simple way to test the memory consumption of the browsers is to load up some big, fat web pages and see how much memory is allocated to the job. This is a fairly good way of simulating the load on the machine, but it's far from perfect. Some browsers may make more use of memory through subprocesses and parts of the operating system. This just counts the memory allocated to processes officially assigned to the named application in the Windows Task Manager.

It's also not simple to guarantee that each browser loaded exactly the same information. Big websites such as those of the news providers like to show different ads with different loads to different people with different browsers. The website developers may hide some of the different ways that they treat the different browsers. As far as I can tell from reading the source from Vimeo, the site is still using Flash on all of the browsers, but it's much harder to be certain without digging deeply into the code.

The table below shows three columns totaling the memory consumed. The first column shows the memory count for just one blank open page, the second shows the count after five news sites are opened in separate tabs, and the third shows the count after five news sites and five AJAX sites are open (ten sites total).

For the ten sites memory count, I executed some JavaScript by pushing some buttons on the AJAX demo pages and maps sites listed below. For example, I asked the Yahoo maps site to display 42nd Street in New York and then searched for "Starbucks."

The five news websites:

The five AJAX websites:

  • CKEditor -- -- a feature rich document editor 
  • GWT-Ext Showcase -- a playpen full of Google Web Toolkit widgets
  • OpenStreetMap -- a tool for editing open source maps
  • Yahoo! Local Maps -- Then going to 42nd Street in New York City and searching for Starbucks
  • Vimeo -- another video sharing site 

There are plenty of holes in this approach:

The numbers change. I watched one Safari process oscillate between 14 and 20 before disappearing entirely. 

Windows is not Safari's home platform, even though it's a very polished browser. 

It's hard to know whether the web developers are treating each browser in the same way. The Vimeo site, for instance, seems to use Flash for all browsers but I can't be certain without devoting more time and better instrumentation. 

It's hard to standardize the features being compared. Opera offers something called "speed dial" that displays the most recent page, and this page pops up when you request a blank page, loading a handful of pages in the background. The result is 86ms just to display a blank page. When speed dial is hidden, it only takes 35ms to open a blank page. But is speed dial really hidden?

Browser memory consumption (megabytes)

  Open blank page 5 news sites 5 news & 5 edit sites
Chrome 5.0 23 226 318
Firefox 4.0 beta 25 103 151
Internet Explorer 8.0 20 243 441
Opera 10.60 35 156 295
Safari 5.0 14 232 321