如何增加 electron-builder 构建的应用程序的最大内存限制?

How to increase the max memory limit for the app built by electron-builder?

我知道我可以在 运行 使用 electron 时添加 --js-flags="--max-old-space-size=4096"。但是我应该把这个参数放在哪里到 electron-builder 的构建配置中呢?

在main.js中添加:

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

根据 Supported Chrome Command Line Switches,这应该在 ready 事件发出之前调用。例如:

import { app } from "electron";

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

app.on('ready', () => {
    // ...
});

只是想补充一点,在我的例子中,max-old-space-size 标志只有在我将它放在我的 webview 的 "preload" 脚本中时才被成功应用,就像这样 (Start_WebviewPreload.ts) :

import {remote} from "electron";
remote.app.commandLine.appendSwitch("js-flags", "--max-old-space-size=8192");

放在"main.js"文件中(整个程序的入口点),并没有做任何事情。 (我什至使用 Process Hacker 2 检查了命令行参数,在我如上所述移动代码之前,它没有显示任何电子进程具有该标志)

此外,我注意到在命令行标志的设置和 app.on("ready") 的执行之间可能存在某种竞争条件——有时,上面的代码适用于 main渲染器进程(一个不在 web 视图中的进程),而其他时候则没有。

所以基本上:如果您想确保命令行开关正常工作,请在给定 browser-window/web-view.

的预加载脚本中应用它们