求教, Electron 打包的 Linux 应用虚拟内存(VIRT)占到 1000g 是为什么

2023-03-23 09:50:55 +08:00
 abelyao

第一次做 electron 应用,对 Linux 也不是特别了解,希望大佬们能指点一下

用 electron-builder electron 打包的 linux 应用,打开后通过 top 命令看到有个进程的虚拟内存占用达到 1100g ,还有几个 64g 的进程,但机器的物理内存总共才 64g ,swap 才 1g

虽然知道虚拟内存有一部分是磁盘交换空间,但 1000g 也太夸张了 😂

亲测 1. 一路从 electron 23.x 退到 13.x 才没这个问题

亲测 2. 不要打包 而是直接用 electron 启动也有这个问题

亲测 3. 业内知名公司 vercel 出的应用 hyper 也复现了这个情况

到底是为什么啊 😂

虽然知道 VIRT 不是实际使用的内存,但甲方不接受啊啊啊啊啊

有什么方法可以优化吗

已经试过了

app.disableHardwareAcceleration()
app.commandLine.appendSwitch("disable-gpu")
app.commandLine.appendSwitch("max-memory", "1GB")

没效果啊

1202 次点击
所在节点    问与答
5 条回复
jackyzy823
2023-03-23 11:28:15 +08:00
试试这个 https://stackoverflow.com/questions/43933951/how-to-increase-the-max-memory-limit-for-the-app-built-by-electron-builder

app.commandLine.appendSwitch('js-flags', '--max-old-space-size=4096');
abelyao
2023-03-23 11:43:38 +08:00
@jackyzy823 不起作用… 内存占用实际不高,就 200M 左右,是虚拟内存有异常
jackyzy823
2023-03-23 12:17:03 +08:00
那试试外部控制 例如 ulimit 或者 cgroup 之类的。
f6x
2023-03-23 12:28:03 +08:00
你自己都不贴出实际内存占用 RES. 还指望能给甲方解释清楚?
abelyao
2023-03-23 13:37:58 +08:00
@f6x 啥意思?甲方自己 top 看 VIRT 的啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/926429

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX