在Electron应用程序中启用手动垃圾回收

时间:2018-07-17 01:30:58

标签: node.js electron

我一直在尝试在我们编译和构建的Electron应用程序中配置垃圾收集和最大旧空间大小。

我可以通过CLI electron.cmd --js-flags="--expose_gc --max-old-space-size=128" .使用这些设置进行调试,并且可以使用Global GC。

但是,当我尝试使用电子API app.commandLine.appendArgument('--js-flags', '--expose_gc --max-old-space-size=128');设置这些标志时,它没有按预期方式启用GC,因此在app.on('ready', ...)函数之前会调用此代码。

也没有设置NODE_OPTIONS帮助(我看到此功能已根据https://github.com/electron/electron/issues/12695在最新的Electron版本中被禁用)

有没有人有工作经验?

1 个答案:

答案 0 :(得分:3)

app.commandLine.appendSwitch('js-flags', '--expose_gc --max-old-space-size=128')

appendSwitch的第一个参数不使用--前缀,只需删除它即可。 seconds参数将按原样进行解析,这就是为什么它保留前缀的原因。

还请注意,如果您使用apppendSwitch,它只会为渲染器公开gc,如果要在其中使用它,则需要添加CLI参数。