This is the 20th day of my participation in the Genwen Challenge
- Browser process: mainly responsible for interface display, user interaction, sub-process management, storage and other functions.
- Render process: The core task is to turn HTML, CSS, and JavaScript into web pages that users can interact with. Both the typography engine Blink and JavaScript engine V8 run in this process. By default, Chrome creates a rendering process for each Tab Tab. The same rendering process is shared unless a new page opened from an old page belongs to the same site as the old page. For security reasons, renderers are run in sandbox mode.
- Network process: mainly responsible for the page network resource acquisition and transfer. It was originally a module under the browser process, but now it has become a separate process.
- Plug-in process: the plug-in process is mainly responsible for running plug-ins. Plug-ins are prone to crash. Therefore, the plug-in process is isolated to ensure that the plug-in process crash does not affect the browser and page. By plugins, I don’t mean store extensions, but something like Flash.
- GPU process: Chrome didn’t have a GPU process when it was first released. The original intention of using GPU was to achieve 3D CSS effect, but later the UI interface of web page and Chrome were drawn on GPU, which made GPU become a common requirement of browser. Finally, Chrome has introduced GPU processes on top of its multi-process architecture.
To open a page, at least one network process, one browser process, one GPU process and one rendering process are required. If the page you open has a plug-in running, you need to add one more plug-in process.
However, every coin has two sides. While the multi-process model improves the stability, smoothness, and security of the browser, it also inevitably introduces some problems:
- Higher resource usage. Because each process contains a copy of the common infrastructure (such as the JavaScript runtime environment), this means that the browser consumes more memory resources.
- More complex architectures. Problems such as high coupling between browser modules and poor scalability lead to the current architecture has been difficult to adapt to new requirements.