我有一个使用太多内存的 JavaScript 应用程序。它不会使选项卡崩溃,但加载可能需要几分钟,其中大部分时间都花在了 GC 上。我正在使用堆分析器查看哪些函数分配的内存最多,效果很好。
有没有什么方法可以让 Chrome 允许每个进程使用更大的 JS 堆,这样我就可以在减少内存压力的情况下进行测试运行,而无需等待 GC 几分钟?也许是我找不到的命令行参数?
最佳答案
是的,控制台中报告了 jsHeapSizeLimit
:
> console.memory
MemoryInfo {totalJSHeapSize: 42100000, usedJSHeapSize: 29400000, jsHeapSizeLimit: 1620000000}
根据两个限制计算:
size_t MaxReserved() {
return 2 * max_semi_space_size_ + max_old_generation_size_;
}
您可以使用 v8 标志设置这些最大值(以 MB 为单位):
chromium --js-flags="--max_old_space_size=512 --max_semi_space_size=512"
(或者如果您愿意,可以使用 --js-flags=--help
找到名称相似的初始分配标志。)
关于 gc 如何管理堆空间的简短描述是 here .
关于javascript - 提高 Chrome JS 堆限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43643406/