当前运行环境

  • Windows 10 x64 专业工作站版 21H1
  • Chrome 版本 91.0.4472.114(正式版本) (64 位)

QA

1. 内存占用过高

众所周知,chrome快的原因有一部分归功于页面预加载,但伴随持续高强度冲浪的同时,会发现系统内存占用剧增。
可能有的小伙伴会惊奇的发现,在静置一段时间后,chrome占用内存会持续下降,直到一个合理的水平稳定不动。此时就是chrome自己在进行最久未使用页面的清理。很遗憾本人目前还没找到有效提高这个过程的设置方法。故提供一下方法替代设置:

1.1 使用低配模式加载chrome

在Chrome快捷键的目标启动路径后加上' --enable-low-end-device-mode',注意--前有空格
"C:\Program Files\Google\Chrome\Application\chrome.exe" --enable-low-end-device-mode
  • 此模式下基本上会将内存占用限定在1g左右,cpu占用无明显限制(也可能是CPU性能够用),长久使用不会出现out of memory等卡死问题。
  • 缺点是因为开启了低硬件限制,当浏览多个页面时,可能会出现因强制限制内存导致的旧页面被回收,以至页面崩溃的情况,此时需重新刷新即可访问。

1.2 使用低配模式加载chrome并设置最大可用内存上限

基本原理同上述步骤,区别在于设置了最大可用内存上限,
"C:\Program Files\Google\Chrome\Application\chrome.exe" --enable-low-end-device-mode --js-flags="--max_old_space_size=2048

2. 进程开销过大(进程数量过多)

2.1 合并同域页面进程

一般情况下,每个页面都代表一个进程,但事实是多个进程会导致进程切换成本增加,很多多余的资源会被重复加载,造成线程占用过多以及内存浪费。添加' --process-per-site'选项可以使相同域的页面共享一个进程。
"C:\Program Files\Google\Chrome\Application\chrome.exe" --process-per-site

可与'--enable-low-end-device-mode'、'--js-flags="--max_old_space_size=2048'连用

"C:\Program Files\Google\Chrome\Application\chrome.exe" --enable-low-end-device-mode --process-per-site
"C:\Program Files\Google\Chrome\Application\chrome.exe" --enable-low-end-device-mode --process-per-site --js-flags="--max_old_space_size=2048
  • 该模式减少了进程数量,减少多个同域页面对同一资源的多次重复加载,从而也减少了内存占用
  • 缺点是可能存在安全隐患、或者其他问题

2.2 限制渲染进程数量

添加'--renderer-process-limit=3'参数,强制性限制进程数量为3,数字可以修改

"C:\Program Files\Google\Chrome\Application\chrome.exe" --renderer-process-limit=3
  • 不能和其他方法联用
  • 不推荐使用
Last modification:June 24, 2021
如果觉得我的文章对你有用,请随意赞赏