在 Chrome 中打开一堆页面后,我的电脑变得很慢。Windows 任务管理器显示某些页面占用了大量 RAM:
- 它们为什么占用这么多 RAM?
- 有没有办法知道每个页面占用了多少 RAM,以便我进行调查?
谢谢。
答案1
Chrome 是浏览器市场上 RAM 消耗最大的浏览器。它用增加的内存使用量来换取更高的速度。但是,如果可用 RAM 不足,它就会成为市场上速度最慢的浏览器(相比之下,资源占用量足够小,可以完全保留在 RAM 中,而不是分页到硬盘中)。
Chromium 开发团队讨论 Chrome 中使用的这种内存模型的优缺点。
在这里,您可以配置 Chrome 使用具有各种权衡的替代内存模型,包括“firefox 风格”的单进程模式:http://dev.chromium.org/developers/design-documents/process-models
答案2
- 为什么网页占用这么多 RAM?
Chrome 使用每进程模型,这意味着对于每个选项卡(或相关选项卡组),它使用单独的进程而不是单独的线程。这基本上意味着每个选项卡都是一个单独运行的程序。这样,如果发生任何崩溃,它们都会自行关闭,而不是关闭整个浏览器(它对插件和大多数扩展程序执行相同的操作)。
这有其明显的好处(沙盒是主要的好处),但当然它也有缺点,比如每个都有内存开销,这意味着 Chrome 在打开同一组页面时比不使用每个进程模型的浏览器总体上使用更多的 RAM(自 Chrome 发布以来,其他浏览器已开始转向这种方法)。
正如你所注意到的,每个进程的规则并不一定意味着每一个tab 有自己的进程。这取决于页面的打开方式。使用在新标签页中打开或者在新窗口中打开在与父进程相同的进程中打开页面/链接,但是在隐身窗口中打开在新的进程中打开它,就像新标签和新窗户命令。
页面占用大量 RAM 的另一个原因是,如今大多数网页都包含大量 JavaScript 和 Flash,这会导致 CPU 和 RAM 负载过大(这也意味着旧系统无法舒适地浏览互联网,因此不再存在“二手、旧但适合浏览的系统”)。更糟糕的是,插件和扩展程序(甚至可能是 Chrome 本身)可能会泄漏内存过了一段时间,内存使用量及时增加。
- 有没有办法知道每个页面占用了多少 RAM,以便我进行调查?
不幸的是,没有(已知/简单的)方法来查看每个页面的内存使用情况。最接近的方法是按下Shift+Esc或右键单击标签条并选择任务管理器来查看每个进程的内存使用情况。
您可以尝试的一件事是在新进程中打开每个页面(使用上述方法之一),然后进行比较。
答案3
尝试 spanner、工具、开发人员工具、审计
大量关于提高网页效率的建议,以及为什么其他人的特定网页使用过多资源的原因。