如何增加电子制造商构建的应用程序的最大内存限制?

时间:2017-05-12 09:19:23

标签: electron-builder

  • 版本:“电子”:“1.6.2”,“电子工程师”:“^ 16.8.2”,
  • 目标:windows x64

我知道我可以在使用电子运行时添加--js-flags="--max-old-space-size=4096"。但是我应该把这个参数放在电子生成器的构建配置中?

2 个答案:

答案 0 :(得分:9)

在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', () => {
    // ...
});

答案 1 :(得分:0)

仅想补充一点,就我而言,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")的执行之间可能存在某种竞争条件-有时,上面的代码适用于主渲染器进程(一个不在网络视图中),而其他时候则没有。

所以基本上:如果您想确保命令行开关能够正常工作,请在给定的浏览器窗口/网络视图的预加载脚本中应用它们。