Google Chrome浏览器是否有内存限制?

时间:2015-04-14 05:51:29

标签: javascript json google-chrome memory memory-management

chrome中单个选项卡的默认内存限制是什么?

5 个答案:

答案 0 :(得分:12)

很难正确回答,只有在具有特定构建的特定任务的基准测试中才能找到答案。

有几件事可以让你使用1到2 GB的内存:

  • Chrome版本:因为不同的V8引擎有不同的内存限制。
  • Chrome平台:32位或64位。
  • 操作系统本身:可以使用不同平台为不同平台构建chrome。
  • 同样,Chrome版本:互联网上有一些关于重新编译chrome的讨论,其中包含一些可能允许使用更多内存的编译标记,然后Chrome开发人员决定排除这些标记,原因有些。谁知道 - 也许他们会再次包含它们或者会增加默认堆大小。
  • 视频内存:在某些情况下,网页内容可能需要一些视频内存,如果您的视频适配器数量不足,Chrome会将其从普通内存中取出,这会增加页面的内存使用量。

目前,使用64位Chrome版本47,在Windows 8.1上,我可以使用一个标签占用1.8GB,然后崩溃。

更新:

我可以看到发生了一些魔法并且限制发生了变化 对于Chrome版本63,在x64 Windows 10操作系统上,我可以分配最多3.5 GB的内存,解析一个巨大的JSON字符串,然后在页面上显示它。
该号码取自Chrome的任务管理器和Process Explorer的Private Bytes指标。

答案 1 :(得分:2)

有人谈论一个非常相似的话题。 Here

您应该尝试以下方法:

右键点击Chrome图标,然后转到属性。 Chrome应该在这里:

"C:\Documents and Settings\%USER%\Local Settings\Application Data\Google\Chrome\Application\chrome.exe" 

%USER%是您PC上的用户名,显然;)

在该行的末尾添加--purge-memory-button

它应该是这样的:

"C:\Documents and Settings\%USER%\Local Settings\Application Data\Google\Chrome\Application\chrome.exe" --purge-memory-button 

现在,当Chrome工作时,按shift + Esc,现在你有了一个新的选项,“清除内存”,可以释放内存。在特定时间不需要注意的选项卡将从RAM中清除。

您还可以添加其中一行:

永远不要自愿放弃记忆

--memory-model=high  

切换标签时自动减少工作集

--memory-model=medium 

切换标签时以及

时自动减少工作集
--memory-model=low 

浏览器未被主动使用

目标地点"C:\Documents and Settings\%USER%\Local Settings\Application Data\Google\Chrome\Application\chrome.exe"

后面可以有多行

假设我们想要使用“清除内存”行和“低内存模型”行。它看起来像这样:

"C:\Documents and Settings\%USER%\Local Settings\Application Data\Google\Chrome\Application\chrome.exe" --purge-memory-button --memory-model=low 

答案 2 :(得分:2)

在具有特定版本的特定平台上进行基准测试后,您将获得一个完美的答案。结果将仅适用于您实验过的平台和chrome版本,因为有太多因素可能会对结果产生不同的影响,

  1. Chrome版本可能具有不同的v8引擎,并且并非所有v8引擎都具有相同的内存限制。同样,当我们对chrome进行基准测试时,也会出现32位和64位架构。默认的堆大小可能因v8版本而异。

  2. 运行chrome的系统配置。 chrome需要图形内存/视频内存,如果没有,则将使用内部内存,从而增加了内存使用量。

  3. 它也与进程本身有关,每个线程都需要bookkeeping的内存,尤其是其堆栈。 32位进程只能寻址4 GB的内存。 64位进程在地址空间上没有问题,但是在实际分配上没有问题。但是,程序不应达到任何这样的限制,也不必担心它,Chrome也同样适用。

我曾经尝试从Chrome的PHPMyAdmin导出和打印数据库。它的DB大小为1.22GB,Chrome崩溃了。我对文件导出执行了同样的操作,并且魔术般地工作正常。

关于v8引擎,它在32位系统上有512MB的内存限制,在64位系统上有1434MB(1.4 GB)。 chrome的心脏为v8,这是影响内存限制的主要因素。

答案 3 :(得分:-1)

通过传递以下命令行选项,我能够增加基于nw.js(chrome)的destkop应用的内存限制:

Node.js: node --max_old_space_size=12288 script.js
Google Chrome: chrome.exe --js-flags="--max_old_space_size=12288"
NW.js: add "js-flags": "--max_old_space_size=12288" to the package.json.

调整12288(12GB)以满足您的需求

答案 4 :(得分:-1)

如果您运行的是32位Chrome,则分配的空间不能超过2 GB,因为这是32位Windows进程的进程限制。对于64位chrome,上限为4gb。 Chrome不允许分配超过4Gb的内存