如何使谷歌铬或铬使用更少的内存


13

我的计算机只有4GB的内存,并且在铬或铬上打开8-12个随机标签经常会冻结我的计算机。目前我正在使用google-chrome-stable --process-per-site。这在一定程度上有所帮助。是否可以在单个过程中运行铬或铬?谁能给我一些有关如何控制chrome过度使用内存的提示?


为什么您觉得Chrome使用的内存超出了需求?如果现代浏览器仅使用单个进程,它们将非常慢。是什么让您认为Chrome仅使用一个进程就可以使用更少的内存?
Ramhound,2015年

我想我检查过一次,发现IE在内存占用方面要好得多。IE曾经是一个像V6-V9之类的玩笑,直到大约v10或v11为止。他们说当前版本还不错。看一看。还可以查看Opera,它在历史上并不太占用内存。.虽然我必须说我只是检查了IE,但在其中一个实例中它使用了102MB ..这看起来很多。铬。您可以尝试使用很小的浏览器,例如“ off by one”,但它们可能无法正确显示所有页面。
barlop 2015年

即使RAM昂贵,但当您的RAM不足时,更多的RAM是一项不错的投资,马上就能获得回报!
barlop 2015年

3
Chrome本质上会占用大量内存。节省内存的最佳方法是使用其他浏览器。
qasdfdsaq 2015年

如您未指定的那样,在Linux上,您可以使用交换为压缩ram zram,该软件包为zram-config。帮助避免长时间冻结。
水瓶座力量

Answers:



3

我以这种方式使用cgroup:

sudo cgcreate -a $USER:$USER -t $USER:$USER -g memory:groupChromiumMemLimit
sudo cgset -r memory.limit_in_bytes=$((1024*1024*1024)) groupChromiumMemLimit
cgexec -g memory:groupChromiumMemLimit chromium-browser

铬本身似乎在交换,有时可能会变慢,但不会使整个系统挂在交换其他应用程序上,因此只要铬/铬“达到1GB限制”就将交换。

但是...如果您查看htop,您会看到许多铬处理过程,它们将常驻内存的总和略超过1GB,我想我需要更多有关此方面的信息。

还没有尝试memory.soft_limit_in_bytes查看它是否有某种帮助,如/superuser//a/1168435/157532提供的链接所建议。

但是总的来说,铬所使用的RAM比以前少得多,并且显然被交换了很多,因此尽管我在htop看到了什么,但是这些cgroup命令仍在工作,因此cgroup似乎试图使用“不多”来保持铬超过1GB”就足够了。


1
top以字节,MB,GB或TB显示内存使用情况。这些是1000的幂而不是1024的幂。这可能就是为什么您看到它略高于目标的原因。
jcoffland '18

另外,这将持续重启吗?它与写入的此解决方案相比如何/sys/fs/cgroup/memory/myGroup/memory.limit_in_bytes
Dan Dascalescu

1
@DanDascalescu顺便说一句,我认为这现在不能很好地工作了……铬产生了15个以上的独立线程,该限制将应用于每个线程(而不是像组限制那样对所有线程进行限制)。我将尝试找到一种方法来创建一个限制,即对每个线程求和,并将它们全部限制在一起(而不是像现在看来那样孤立)。
Aquarius Power

1

我有同样的问题,但我并不孤单:Chrome / Chromium占用大量内存。有时,这会导致系统死机(在我的情况下为Linux Mint 17)。

解决方案1

作为一种解决方法,我开始使用此Chrome扩展程序:伟大的悬念

解决方案2

但是还有其他几种解决方案,例如linuxcgrouphttps://gist.github.com/juanje/9861623

其他解决方案

我已将其他解决方案附加到对类似问题的第一个答案

无论如何:Chrome是一个很好的(可能是最好的)网络浏览器,并且今天的网站有很高的要求(很多JS,canvas,SVG,嵌入视频,网络套接字..)。尝试削减某些功能-不是一个好主意。我要解决的唯一一个问题(至少对我来说):没人想坐在冻结的系统附近

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.