浏览器多进程架构中,每个标签页真的是独立进程吗?

UX美荣 阅读 3

最近在看浏览器架构的资料,说现代浏览器用的是多进程模型,但我在任务管理器里观察 Chrome,发现有时候多个标签页共用一个进程,有时候又分开。这到底是什么规则?是不是和同源策略或者 iframe 有关系?

我试过打开不同域名的网站,比如 https://example.comhttps://test.com,确实分开了进程,但两个相同域名的页面有时却在一个进程里。这是浏览器的优化策略吗?有没有办法强制每个标签页都独立进程?

我来解答 赞 3 收藏
二维码
手机扫码查看
1 条解答
W″玉楠
你观察得很仔细啊!确实是这样,浏览器并不是简单地给每个标签页分配一个独立进程,而是有一套复杂的策略来做这个决策。

基本规则是这样的:

Chrome 默认采用 "process-per-site-instance" 模型。简单说就是:相同站点的页面会尽量共享一个渲染进程,不同站点的页面则分开。这里的"站点"判断是基于 eTLD+1,比如 example.com 和 test.example.com 会被视为同一个站点,所以它们大概率会共用进程。而 example.com 和 test.com 肯定分开。

这确实是一种优化策略。如果每个标签页都独立进程,那内存占用会飙升,而且进程间切换也有开销。浏览器需要在安全性和性能之间找平衡。

和 iframe 的关系:

当页面包含跨域 iframe 时,这个 iframe 会被放到独立的渲染进程中运行。这就是为什么你看到一个页面里有多个进程的原因——主页面一个进程,跨域的 iframe 单独一个进程。

强制每个标签页独立进程的方法:

可以试试 Chrome 的启动参数。右键点击 Chrome 快捷方式,目标路径后面加上 --process-per-tab,这样每个标签页都会是独立进程。不过说实话,日常使用没必要这么做,Chrome 默认的策略已经很合理了。

还有个参数是 --disable-gpu-sandbox,不过这个会降低安全性,不建议日常使用。

总的来说,浏览器这套进程分配逻辑就是在保证安全隔离的前提下,尽量减少资源消耗。你看到的现象完全正常,不用太纠结~
点赞
2026-03-16 14:50