Chrome – Google’s first step towards Web OS?
Posted on : 27-01-2009 | By : Karthik | In : Browser, Google, Google Chrome, ZeroHacks
Tags: Chrome, Chrome Task Manager, Google Chrome, High RAM Usage, IE 8, many chrome.exe, Multi Process Architecture, Multi Process Browser, multiple chrome.exe, Web OS
1
Chrome is designed as a Multi Process Architecture keeping in mind the increasing complexity of the web applications. It has several advantages instead of running the whole browser as a single process with several threads.
Today’s browsers try to act smart much like a little operating system. Indeed it runs several (heavy?)applications inside the browser like in Firefox we have FTP, Torrent, IRC, etc.
Browser must attempt to keep each web apps with JavaScript, Flash, Silverlight, Java etc independent of each other so that if one has a bug and crashes it must not close the browser itself. Chrome is designed to spawn multiple instances of Chrome.exe for each tab or site exactly for this reason.
Chrome uses the open source WebKit rendering engine, which is also used by Apple’s Safari web browser.
Since it runs multiple processes Google Chrome can have its own Task Manager. You can access the Google Chrome Task Manager with SHIFT+ESC or a right click on the browser’s title bar. This Task Manager lets you track resource usage for each web app and plug-in, rather than for the entire browser. You can kill any web apps or plug-ins that has crashed, without having to restart the entire browser.
Chrome spawns 3 entirely different architectural processes to manage the browsing.
- Browser Process: Similar to underlying OS it co-ordinates and takes care of interaction with all peripheral devices as well as file interactions. It directs Renderer and Plu-ins to behave in the designed way. It doesn’t do any rendering.
- Renderer Process: As the name suggests. Many renderer process are created to manage each web app. And the most interesting point is that each renderer runs in a separate sandbox with no access to OS files. If any suspicious activity is noticed in a renderer browser kills that PID.
- Plugin Process : Manages the plugins like Flash, Adobe Reader etc.
For each website you visit a new process (renderer) is created. This means an additional chrome.exe in your Windows Task Manager. All this chrome.exe is aggregated and categorized in the Google Chrome Task Manager.
If you open a site from another site’s JavaScript only one renderer will be spawned. Also only one renderer per one domain since inter communication between the different apps of the same domain cannot happen if different PIDs are used. For example if you are signed in yahoo mail, you have to re-sign in for accessing yahoo answers.
In short,
Strategy
1. By using different processes for each site a robust application can be run in each Tab.
2. This implies Google can go ahead and create apps with more functions making things breezier.
So, it’s the beginning of the Web OS as the future will be fully loaded with more on web side.
Is Google the early Bird?
1. Not at all. Microsoft Internet Explorer 8 already uses multi process architecture. While IE 8 also generates multiple iexplore.exe but not in one is to one like Google. You can see 60-70% new processes for running apps in IE.
2. Google’s one is to one process for each site/web app might be more robust going forward.
Who’s over working?
The fantastic UI and different process for each site have taken a great toll on the RAM. Forget your processor’s 20% of the resources.For an average with 12 sites ON:
Google Chrome 1 : 210 MB of RAM
Mozilla Firefox 3 : 200 MB of RAM
Microsoft IE 8 : 260 MB of RAM [IE 8 consumes more RAM than Windows XP]
Thank God for the Moore’s law!





Internet Explorer 8 have been my most used browser this year, it is definitely stable and fast loading too. -