Javascript 页面关闭时未释放chrome扩展内存

Javascript 页面关闭时未释放chrome扩展内存,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,我编写了一个带有背景页bg.html和另一个UI页UI.html的扩展。当第一次加载扩展时,我在任务管理器中看到它使用了大约20mb的内存。然后我打开UI页面,内存增加到170MB。UI相当复杂,我可能会问另外一个问题。当我关闭UI页面时,内存并没有完全释放,剩下160MB。我知道Chrome可能不会在我关闭页面后立即决定执行GC,但看起来它实际上在很长一段时间后都不会释放内存,当我一次又一次打开页面时,它会消耗越来越多的内存 这是正常的行为吗?还是我的代码内存泄漏导致的?如此巨大的内存消耗对用

我编写了一个带有背景页bg.html和另一个UI页UI.html的扩展。当第一次加载扩展时,我在任务管理器中看到它使用了大约20mb的内存。然后我打开UI页面,内存增加到170MB。UI相当复杂,我可能会问另外一个问题。当我关闭UI页面时,内存并没有完全释放,剩下160MB。我知道Chrome可能不会在我关闭页面后立即决定执行GC,但看起来它实际上在很长一段时间后都不会释放内存,当我一次又一次打开页面时,它会消耗越来越多的内存

这是正常的行为吗?还是我的代码内存泄漏导致的?如此巨大的内存消耗对用户来说是非常可怕的


顺便说一句,我在开发工具中拍摄了堆快照,bg.html使用了5.3mb,ui.html 7.5mb

可能与此有关。您尝试过将其用于后台页面吗?@abraham所说的chromium bug没有明确提到这是一个解决方案,但作为一个短期解决方案,可能值得一试。谢谢,这个bug似乎是相关的。我的扩展使用了许多其他API,它们与persistent:false不兼容。目前,我不打算切换到事件页面,我不确定我是否可以在不丢失功能的情况下切换到事件页面,并且这将导致我的代码结构发生巨大变化。仅供参考,上面提到的内容似乎是最近修复的,所以您应该在chrome开发或canary频道上尝试一下,看看它是否解决了扩展的问题