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

Posted

技术标签:

【中文标题】如何增加由 electron-builder 构建的应用程序的最大内存限制?【英文标题】:How to increase the max memory limit for the app built by electron-builder? 【发布时间】:2017-10-11 13:12:38 【问题描述】: 版本:“electron”:“1.6.2”,“electron-builder”:“^16.8.2”, 目标:windows x64

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

什么是 4096?字节、千字节、兆字节? 是兆字节@Finesse【参考方案2】:

只是想补充一点,就我而言,max-old-space-size 标志只有在我将它放在我的 webview 的“预加载”脚本中时才被成功应用,就像这样 (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") 的执行之间可能存在某种竞争条件——有时,上面的代码适用于主渲染器进程(一个不在网络视图中),而其他时候则没有。

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

【讨论】:

以上是关于如何增加由 electron-builder 构建的应用程序的最大内存限制?的主要内容,如果未能解决你的问题,请参考以下文章

electron-builder - 只为 mac 构建,但设置为构建 mac 并获胜

在运行的应用程序中查看 electron-builder 的构建目标

使用 electron-builder 从电子应用程序构建独立的 .exe

electron electron-builder 构建

使用electron-builder时如何修改app.asar的文件夹结构?

使用 electron-builder 构建 React-Electron 应用程序,index.js 加载到 pre 标签中