If you have read about the technology behind Google Chrome, you will know that each tab in Google Chrome is running on a separate process and why the Google Chrome programmers do it that way. If you are a software developer and don’t know anything about Google Chrome, you may find interesting in reading the story behind Google Chrome.
Microsoft launch their new Internet Explore 8 and one of the feature is the tab isolation where if a website or add-on causes a tab to crash in Internet Explorer 8, only that tab is affected. How it do that? It is actually same idea with Google Chrome where each tab or add-on is running on separate process.
You can ensure this by viewing iexplorer.exe processes from your windows task bar. When you open new tab in Internet Explorer 8, a new process will be created. Internet Explorer 8 takes futher steps on this, instead of creating process each time a tab is open, it stores the unuse processes in pool and reuse them when necessary when a new tab is opened. Besides, one iexplorer.exe process is used for multiple tabs when it thinks it is neccesary. You can see this by opening tabs to 10, and 6 to 8 process will be created, closing the 9 tabs, the 6 to 8 process is still running in your system.
From Windows’s task bar, you will see that Google Chrome’s process use fewer threads than Internet Explorer 8’s (Google Chrome 4-6, Internet Explorer 8: 10-14). I think the addition threads in Internet Explore 8 are use to handle multiple tab in a process. You can see this open 10 tabs browsing different websites, refresh each browser, and check againts Windows’ taskbar on which process is working. You will see more than one tabs are running on any one of the process.
The initial memory usage (tab opened but not browsing any page) in Internet Exporer 8 (16Mb in my laptop) is much higher than Google Chrome’s (7Mb in my laptop).
In this case, whose design is better? Google Chrome – new process for each new tab; or Internet Explorer 8 – new process for each tab (or more than one tab) and reuse the process?
Personally I think Google Chrome is better. I guess why Internet Explorer 8 do it that way is because they think the cost of creating process is high and it would be better to reuse them to save some CPU cycles of creating process. But with nowsaday computers technology, it shouldn’t have any negative impact to create processes frequently on a normal PC. Somemore Internet browser is just software to browse web site and unlike server programs, which process hundreds or thousands of requests in one seconds. Besides, when you resuse the process for another new tabs, any bugs that haven’t crashed the process will bring forward to the new tabs making browser become more fragile.
So, what do you think? Which is better?