• Chrome浏览器多进程架构


    进程与线程

    进程是一个程序的运行实例。
    启动一个程序的时候,操作系统会为这个程序分配内存,用来存放代码、运行中的数据和一个执行任务的主线程,我们把这样一个环境叫做进程。当一个进程关闭之后,程序会回收进程的内存

    线程依附于进程,线程由进程启动管理
    进程中的任意线程崩溃,都会引起进程崩溃
    线程之间可以共享进程的数据,多线程是开启并行运算的基础

    传统的单进程架构的缺陷

    单进程浏览器架构即所有模块都如网络线程、页面线程(JavaScript运行环境、渲染引擎、标签页、插件)等都运行在单进程里,导致浏览器非常不稳定容易崩溃,而且所有页面的渲染模块、JavaScript执行环境以及插件都是运行在同一个页面线程中的,任一时刻只有其中一个模块能运行。Web视频、Web游戏都是通过插件提供的,任意一个线程的崩溃都会引起浏览器的崩溃

    因此,传统浏览器单进程架构最大的缺点就是不稳定、不流畅

    Chrome浏览器多进程架构

    打开浏览器(默认一个标签页)会有几个进程?
    4-5个

    • 浏览器进程 Browser Process
      主要负责页面显示、用户交互、子进程管理,同时提供存储等功能

    • 网络进程 NetWork process
      主要负责页面的网络资源加载

    • GPU进程 GPU process graphics processing unit
      绘制UI界面,GPU的使用初衷是为了实现3D CSS的效果

    • 渲染进程 Render Process即当前标签页进程
      转换HTML、CSS、JS为用户可与之交互的网页,排版引擎Blink, JS引擎V8都是运行在该进程中
      默认模式下,Chrome会为每个标签页都创建一个渲染进程
      处于安全考虑,渲染进程都是运行在沙箱模式下

    • 插件进程
      可以有多个,取决于浏览器插件数量

    多进程架构的优缺点

    优点
    提高了浏览器的稳定性、流畅性和安全性

    缺点
    更高的资源占用,各模块之前耦合性高,拓展性差

  • 相关阅读:
    .htaccess 文件不起作用?| (Apache Rewrite)
    Putty 如何解决中文乱码(笔记)
    如何删除鼠标右键“发送到”的多余项
    开发环境搭建笔记
    Javascript String 包
    第十五章:使用canvas绘图
    慕课css3 2章边框和3章颜色相关
    第5章引用类型
    第一章 JavaScript简介
    第五章引用类型(Object类型、Array类型)
  • 原文地址:https://www.cnblogs.com/ltfxy/p/16366525.html
Copyright © 2020-2023  润新知