当在 Google Chrome 中打开几个标签几个小时/几天时,我注意到有些页面最终使用了大量的 RAM,以至于整个操作系统 (XP) 由于分页而变得无响应。幸运的话,我终于可以将打开的 URL 列表加入书签,关闭 Chrome,然后重新开始;当我不在时,我必须杀死 Chrome 并希望我能恢复打开的 URL 列表。
谢谢你。
Dan*_* D. 16
我编写了一个 Python 2.5 程序,当 chrome 的渲染器使用超过一定数量的内存时,它会杀死 chrome 的渲染器。我在watch. (请注意,它使用了Python 中未包含的psutil模块。)
import sys, os, psutil
if len(sys.argv) == 2:
try:
limit = int(sys.argv[1])
except:
limit = 200 # default 200MB
else:
limit = 200
uid = os.getuid()
for p in psutil.get_process_list():
try:
if (p.name == 'chrome' and any('type=renderer' in part for part in p.cmdline)
and p.uid == uid):
m = p.get_memory_info()
#print p.pid,m, m.rss / 1024 / 1024, m.vms / 1024 / 1024
if (m.rss / 1024 / 1024) > limit: # kill if rss is greater than limit
print 'Killed', p.pid
p.kill()
except psutil.error.NoSuchProcess:
pass
except psutil.error.AccessDenied:
pass
Run Code Online (Sandbox Code Playgroud)当 chrome 无法恢复它们时,我依靠Session Buddy来恢复打开的标签。
迄今为止,我看到的唯一可以做到这一点的是在容器内运行 chrome并限制容器 ram。
然而,这有一些主要的警告,
dockerize 设置和启动序列使运行 chrome 变得复杂
一方面,Chrome 已经使用内核容器对其线程进行沙箱化;所以你必须以一种允许它工作的 root 权限运行容器。这可以规避,而链接的容器模型就是这样做的。(它几乎完成了它需要的一切)
你几乎肯定会失去 GPU 加速
让音频工作很复杂,但在链接的容器模型中处理。
无论您在保修失效时预计会出现什么其他问题,Chrome 都非常不喜欢被告知不要使用更多内存,并且会相应地采取行动并发脾气。
但它最终确实有效。
我更感兴趣的是将这些 ram 限制应用于没有预先构建的 docker 图像来为您排列它们的 Electron Shell 应用程序。
题外话,但我想指出 Firefox 在有限的硬件上表现非常好,但我不认为这是一个真正的答案。
Wik*_*itz -9
我认为你应该选择购买操作系统可以处理的尽可能多的内存。您不应该限制 Chrome 的 RAM 使用量,因为它只会破坏您的网上冲浪体验。假设您大部分时间都使用计算机上网,您应该让 Chrome 获得所需的所有资源,以便提供您希望同时“享受”运行这些选项卡的性能。
我认为没有办法限制每个选项卡的 RAM 使用量,但您可以完全限制 Chrome 的使用量。看这里:
如果我是你,如果我想要流畅的网上冲浪,我宁愿不这样做。
| 归档时间: |
|
| 查看次数: |
47812 次 |
| 最近记录: |