首页 > 解决方案 > 电子内存使用分析

问题描述

我的电子应用程序有一些记忆问题。启动时内存使用量约为 120 MB。JS 堆保持在 32 MB 不变。在浏览器窗口中不执行任何操作时,任务管理器中渲染器的内存使用量每秒增加约 1 MB。在增加 20 MB 后,它似乎又下降了 16 左右(可能是 GC)。但是让窗口打开几分钟会导致 300 MB 内存使用。所以某处存在内存泄漏。

由于 JS 堆大小永远不会改变,我假设节点进程内部存在泄漏,我在这方面是否正确?如何分析电子/节点进程中的内存使用情况?(因为 chrome 配置文件在这种情况下似乎没有帮助)

https://spectrum.chat/electron/general/debugging-high-memory-usage-in-electron~80057ff2-a51c-427f-b6e1-c297d47baf5bhttps://www.electronjs.org/docs/tutorial/相关表现

标签: memory-leakselectrongoogle-chrome-devtools

解决方案


我有同样的问题,我的应用程序以 200MB 的已用内存开始,不到 20 分钟,它使用超过 450MB 什么都不做……只显示一些图像。树莓派 +3b 也发生了同样的情况。内存的使用不断增长,直到 rasp 死亡。

我发现如果你打开了 devtools 窗口(我假设你有调试目的)它只会吃掉所有的内存。关闭 devtools 窗口后,我在 Win 系统上的应用程序使用 100MB(稳定),在我的树莓派中使用 300MB(稳定)。

我在某处读到,当使用 GPU 进行渲染时,它也使用了大量内存,所以我使用了

app.disableHardwareAcceleration();


推荐阅读