【发布时间】:2023-03-20 22:46:01
【问题描述】:
chrome 中单个选项卡的默认内存限制是多少??
【问题讨论】:
标签: javascript json google-chrome memory memory-management
chrome 中单个选项卡的默认内存限制是多少??
【问题讨论】:
标签: javascript json google-chrome memory memory-management
很难正确回答,只能在针对特定构建的特定任务的基准测试中找出答案。
有几件事可以让您使用 1 到 2 GB 的内存:
现在,使用 64 位 Chrome 版本 47,在 Windows 8.1 上,一个选项卡最多可以占用 1.8GB,然后崩溃。
更新:
正如我所见,发生了一些神奇的事情,并且限制发生了变化。
对于 Chrome 版本 63,在 x64 Windows 10 操作系统上,我最多可以分配 3.5 GB 内存,解析一个巨大的 JSON 字符串,然后将其显示在页面上。
该数字取自 Chrome 的任务管理器和 Process Explorer 的 Private Bytes 指标。
【讨论】:
有人在谈论一个非常相似的话题。 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
【讨论】:
--memory-model 参数是否仍然可用?我找不到关于它的任何官方文档 - 只是一个铬开发者对其实施不满意的论坛帖子。
在特定平台上使用特定版本进行基准测试后,您可以获得完美的答案。结果将仅适用于您试验的那个平台和 chrome 版本,因为有很多因素可能会对结果产生不同的影响,包括,
Chrome 版本可能具有不同的 v8 引擎,并且并非所有 v8 引擎都具有相同的内存限制。此外,当我们对 chrome 进行基准测试时,32 位和 64 位架构就会出现。默认堆大小可能因 v8 版本而异。
运行 chrome 的系统配置。 chrome 需要图形内存/视频内存,当你没有它时,它会使用内部内存,从而导致更多的内存使用。
这也与进程本身有关,每个线程都需要一些内存用于bookkeeping,尤其是它的堆栈。 32 位进程只能寻址 4 GB 内存。 64 位进程没有地址空间问题,而是实际分配问题。但是,程序不应接近任何此类限制或需要担心它,这同样适用于 chrome。
我曾尝试从 chrome 的 PHPMyAdmin 导出和打印数据库。它在 DB 中有 1.22GB 大小,并且 chrome 崩溃了。我对文件导出执行了同样的操作,并且神奇地工作正常。
关于 v8 引擎,它在 32 位系统上有 512MB 的内存限制,在 64 位系统上有 1434MB(1.4 GB)的内存限制。 chrome的核心是v8,这是影响内存限制的主要因素。
【讨论】:
通过传递以下命令行选项,我能够增加基于 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) 以满足您的需求
【讨论】:
如果您运行的是 32 位 Chrome,则分配的空间不能超过 2 GB,因为这是 32 位 Windows 进程的进程限制。对于 64 位 chrome,有 4gb 的限制。 Chrome 不允许分配超过 4Gb
【讨论】: