This post has been republished via RSS; it originally appeared at: Microsoft Edge Blog.
Browsers today are more like operating systems than document viewers. Users are performing an increasing number of tasks in the browser, and fewer in desktop applications. However, every web page, web app, and extension uses memory. As a result, users are often concerned about how memory usage impacts their experience. We’re working to develop solutions to address this concern. These solutions include providing websites and extensions developers with information to help them use fewer resources and helping users understand how their browsing habits can affect Microsoft Edge’s resource usage. We’ll be sharing more about Microsoft Edge’s memory usage over the coming months, starting with today’s post diving into Microsoft Edge’s multi-process architecture. We hope this will provide insight into how Microsoft Edge is using your computer’s resources, how browsing habits impact resource usage, and how you can help us make Microsoft Edge even better.How multi-process architecture helps improve browser security and reliability
Many browsers are built using a multi-process architecture, which means the browser is split into different processes.- Browser process: This is the main process, which helps manage windows and tabs, and controls the browser frame such as the address bar and forward and back buttons. It also routes privileged access to utility processes like network requests and file access.
- Renderer processes: These control how websites are rendered in a tab by executing code provided by the website. They handle HTML (Hypertext Markup Language), CSS (Cascading Style Sheets), JavaScript, images, and more. The resource usage of each renderer process varies depending on the content being hosted.
- GPU process: This process is responsible for communicating with the GPU (graphics processing unit) and handles all GPU tasks. The GPU is a piece of hardware that performs graphics-related calculations quickly and sends the output to a monitor for display. Modern browsers use the GPU to quickly render web pages.
- Utility processes: Audio playback, network service, video capture, data decoding, and collections manager are all handled by these processes, so that Microsoft Edge can control and audit access to these resources and coordinate the use of global system resources.
- Plug-in processes and extension processes: Plug-in processes contain active plug-ins such as Adobe Flash, and extension processes contain active extensions. Each process executes the code provided by the plug-in or extension. The resource usage of each process varies depending on the code provided. Each process also has code that allows the plug-in or extension to communicate with the browser and renderer processes.
- Crashpad handler process: This tracks the health of the different processes in Microsoft Edge. If Microsoft Edge crashes, this process will help the browser capture and transmit crash reports to Microsoft servers. We use these crash reports to find and fix crashes.
- A browser process for the frame of the browser
- A GPU process to help display the graphics
- A renderer process that is running the code provided by an example site
- A network service utility process to help with network requests
- An audio service utility process to help with playing audio
- A plug-in process that is running the code provided by Flash
- Two extension processes, one for each extension, that are running code provided by the extension
- A crashpad handler process that is monitoring the health of Microsoft Edge
- A browser process for the frame of the browser
- A GPU process to help display the graphics
- Six renderer processes:
- Four renderer processes for the tabs: Each tab has its own renderer process and is running the code provided by the website. Occasionally, tabs from the same domain will share a process.
- Two renderer processes for the ads: Ads from the same domain will share a process and will run the code provided by the ad. In this example, the two ads for the first site will share a process and the two ads for the second site will share a separate process. These ads are embedded in the web page using something called a subframe. (We’ll talk more about subframes later.)
- A network service utility process to help with network requests
- An audio service utility process to help with playing audio
- A plug-in process that is running Flash
- Two extension processes, one for each extension, that are running the code provided by the extension
- A crashpad handler process that is monitoring the health of Microsoft Edge