Jest似乎不受节点--最大旧空间大小选项的影响



我一直在努力克服运行此处描述的jest时明显的内存泄漏:https://github.com/facebook/jest/issues/7874

我只想给一大堆堆空间开玩笑,这样我的测试就可以在泄漏的情况下完成。但是,使用以下命令行:

node --max-old-space-size=8192 --expose-gc ./node_modules/.bin/jest --no-cache --runInBand --logHeapUsage

我仍然得到";Javascript堆内存不足";堆使用量约为1500MB。如果我运行:

节点--最大旧空间大小=8192

然后做:

> v8.getHeapStatistics()
{
...
heap_size_limit: 8640266240
...
}

很明显,我可以影响节点的堆大小。但不知何故,这并不是玩笑。

节点:16.13.0耶稣:27.4.4有什么想法吗?

也许jest.config.js中的其中一个设置可以为您修复它:

{
maxWorkers: 1,
globals: {
'ts-jest': {
isolatedModules: true
}
}
}

我想我记得我和你有同样的问题,我用所有这些配置解决了它。我不确定哪一部分是与众不同的,但我想试一下。

我认为您可以将问题设置--最大旧空间大小=8192设置为较小的值。当V8进程运行jest时,您可能正在从中窃取内存。

你的问题的参考,但更通用。

最新更新