我有一个使用太多内存的JavaScript应用程序。它不会崩溃选项卡,但加载可能需要几分钟,其中大部分都用在GC中。我正在使用堆分析器来查看分配最多内存的函数,这非常有效。
有没有办法让Chrome允许每个进程拥有更大的JS堆,这样我就可以在不等待GC分钟的情况下扭转内存压力的测试运行?我无法找到的命令行参数?
答案 0 :(得分:6)
是控制台中报告的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。