IE7 Tabs to Gorge on Memory, Waste UI Space

Microsoft’s Tony Schreiner is in charge of the IE7’s tabbed browsing features. He posted today about the complications of adding tabs to IE. I still maintain that MS should have hired me to help in this process (quals: 7+ years of IE tabbed browser development) but they weren’t interested. Anyway…

Perhaps the trickiest decision MS was whether to break compatibility with 3rd-party IE toolbars. Currently, IE toolbars are "tied" one toolbar to one IE window. But when done right, tabbed browsers save memory compared to single-window browsers because tabs share toolbars. Use the RoboForm toolbar for example. In NetCaptor, you can have 20 tabs open and one RoboForm toolbar – but 20 IE windows would require 20 RoboForm toolbars.

After MS announced IE7 would have tabs, I expected to hear about changes to the add-on APIs to allow IE7 tabs so share toolbar instances. I never considered the possibility that each IE7 tab would have its own copy of 3rd party toolbars. But that’s the direction Microsoft has taken. What’s the problem with that approach? Every time you open a new browser tab (which tabbed browser users do much more frequently than single-window browser users), you have to create new instances of any 3rd-party bars. Ouch. Opening a folder of 25 Favorites in tabs? You get 25 RoboForm toolbars, and use much more memory and resources than necessary.

Beyond wasting memory and resources, it sounds like IE7 tabs will also waste user interface space. Tony wrote that 3rd party toolbars will now be a part of the tab instead of the IE frame. If I’m reading him right, IE7 could waste valuable vertical UI space, as shown in this doctored screenshot:


21 thoughts on “IE7 Tabs to Gorge on Memory, Waste UI Space

  1. Hi Adam,

    I’m definitely against wasting system resources, as it seems like the new IE7 tab format is going to do with each tab running it’s on thread process.

    What I’m curious about though is the effect this type of tab will have on individual tab’s behaviours. Many times in Netcaptor when I am browsing a website that has intensive Flash, a java applet (eww I know), or loads up some other plugin or dhtml, the entire browser will ‘freeze’ until it’s done loading.

    If one of those items mentioned has a bug and crashes, all other open windows go with it.

    Will having separate thread processes for each tab prevent this? If one crashed, would the others continue normally? Would they be able to continue loading independently without ‘freezing’ the other tab pages?

    If this is the case, I’m not sure that having the threads be separate is a bad thing at all… I’d be curious to know your thoughts on how much actual memory will be wasted by having each process thread individualized.

    Also, one related feature request for NC8 🙂 Maxthon has a feature where when your browser crashes it remembers the pages you had open and re-opens them at last startup. Could be handy, unless it keeps opening the page that crashed it of course!

    Thanks for reading,

  2. Adam, I want to explain more about why we chose the thread-per-tab, toolbar instance-per-tab approach we did for IE7.

    Adam and I know each other a little bit. For other readers – I’m the dev manager for the IE feature team that owns tabbed browsing in IE7.

    We researched several other approaches, and we ultimately preferred the multiple thread, toolbar-per-tab as the right balance of appcompat and stability vs. memory use. Remember that we’re retrofitting multiple tabs into a browser that wasn’t designed that way, and we want it to work out-of-the-box with 3rd party toolbars that weren’t designed to work with tabs.

    Our testing showed that if we went with a single thread for all tabs in a window, we would encounter many more UI stalls and jerkiness – too many things both in our code and common 3rd party code block on various things like network activity. So the foreground tab scrolling would stall for a moment, or the whole frame would hang for several seconds while a background tab loaded some docobject, and the like. Not good.

    We looked at other approaches for implementing toolbars that weren’t instance-per-tab, but they all had much bigger appcompat issues. Ultimately we felt we needed this approach for the best possible appcompat. Even so, some toolbars won’t work with IE7 and will need to be fixed. But we hope the fixes will be minor.

    We certainly didn’t do it this way to save time. Back when we were deciding the implementation, the thread-per-tab approach was estimated to be significantly more expensive than any other approach we considered.

    Obviously third party toolbars that handle many top level windows well will work well with IE7’s tabs, and ones that don’t handle lots of windows won’t handle lots of tabs any better.

    As for UI space, yes, third party toolbars are currently located below the tabs and can’t be moved above them. Another tradeoff.

  3. @Bruce:

    Yuck. I don’t use IE, but this seems to be a good reason for users of IE7 to either:
    1) Switch to an IE shell
    2) Switch to a new browser (Firefox/Opera/etc.)

    I find it really odd you would do this, seems like a really bad UI design, when MS is usually good at creating usefull UI’s.

  4. I don’t see why you should worry about existing toolbars. Ditch the crap and come up with a good design. This is your last chance before Firefox makes you history.

  5. Well, are there any plans to build IE 8 from scratch? You can’t keep up with Firefox and Opera if each new feature has major tradeoffs…

  6. Kevin, don’t forget that in the end, it’s usability that matters to a user, not how the tabs are compatible with 3rd party vendors and how IE was designed. The user won’t care. If the usability requires one to go through too many steps (as opposed to a simple one-click method that Firefox ueses), all your efforts will be completely wasted. Is this what you really want?

  7. What would be a very good thing is if Microsoft promoted other browsers such as Mozilla Firefox. That are standards compliant browsers.

    Internet Explorer holds the whole web back from becoming a lot better, because of it’s huge market share and lack of web standards support as in the webpage coding it supports and how. If the majority of web users used a standards compliant browser such as Firefox, Opera, K-Meleon and so on, the whole web would be much better.

    However there are quite a lot of websites and Intranet sites that rely on IE’s buggy rendering engine to display the pages. So if Microsoft was to make IE about as standards compliant as Gecko (the rendering engine Mozilla, Netscape, K-Meleon and loads of other browsers use) or Opera’s rendering engine, it would brake a lot of these sites. Which depending on the site, can be a very good thing or just a good thing, or a bad or very bad thing.

    So what I am saying is Microsoft can have their buggy IE with it’s very bad web standards support, but also promote good standards compliant browsers such as Firefox, K-Meleon, Opera and etc. Then it really is up to the user what browser they want to use. The majority of Internet Users think that Internet Explorer is The Internet and have absolutely no idea what a web browser is.

    At the moment, because IE has like 80% market share the majority of sites are made for it. Now this is a really bad thing, because of IE’s major lack of web standards support. As a result of this the majority of these websites are not as good as they would be, because they are not using amazing CSS 2 and what not standards compliant coding, for pages that will do really amazing stuff to them that other browsers can support, but not IE.

    The majority of people only make one version of their website and so they make it for IE. How I see it is if say IE had about 50% market share and standards compliant browsers about 50% market share. This will have an impact on the majority of Website Craters and they will make sure their sites are valid at W3C and some of them will make two versions of their site I believe. A site for IE and the other for standards compliant browsers.

    In conclusion: web standards support is a lot more important then browser features such as tabbed browsing. Also browser security is important for many people, but I don’t really care about IE’s.

    Oh yeah and these fake browsers that use IE are really bad. Any program that uses IE is really bad or bad.

    I really love this example: So I just had to share it. Anyway view it in IE and a standards compliant browser such as Firefox. Notice how stupid it looks in IE? Notice how it looks rather good in Firefox or whatever standards compliaint browser you viewed it in?

  8. For whomever wrote it… IE will never be history completely because of ActiveX and it’s integration with a lot of Windows based tools. No matter how good the other browsers are, until they figure out how to run MS integrated features like ActiveX, they won’t be able to completely replace it. I ran into it just this week trying to run FireFox (on a PC) to view some video from our e-Learning department. The software they use relies heavily on ActiveX. They aren’t switching, and FireFox wouldn’t run it – to to IE 6 it went. Blech. Damn. Would be even better if the Mac could deal with all that stuff too… Who knows, maybe with the Intel chips they’ll be able to somehow? “I like dreaming…”

  9. Pingback: ultramookie

  10. Pingback: Jeff Horton

  11. Pingback: SEOToolSet Blog

  12. Pingback: Asa Dotzler on firefox, cats, mars, and more

  13. Pingback: A View From Home

Comments are closed.