abelyao
V2EX  ›  问与答

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

  •  1
     
  •   abelyao · Mar 23, 2023 · 1963 views
    This topic created in 1176 days ago, the information mentioned may be changed or developed.

    第一次做 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")
    

    没效果啊

    5 replies    2023-03-23 13:37:58 +08:00
    jackyzy823
        1
    jackyzy823  
       Mar 23, 2023
    试试这个 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
        2
    abelyao  
    OP
       Mar 23, 2023
    @jackyzy823 不起作用… 内存占用实际不高,就 200M 左右,是虚拟内存有异常
    jackyzy823
        3
    jackyzy823  
       Mar 23, 2023
    那试试外部控制 例如 ulimit 或者 cgroup 之类的。
    f6x
        4
    f6x  
       Mar 23, 2023
    你自己都不贴出实际内存占用 RES. 还指望能给甲方解释清楚?
    abelyao
        5
    abelyao  
    OP
       Mar 23, 2023
    @f6x 啥意思?甲方自己 top 看 VIRT 的啊
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5441 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 07:52 · PVG 15:52 · LAX 00:52 · JFK 03:52
    ♥ Do have faith in what you're doing.