【发布时间】:2012-12-12 11:14:36
【问题描述】:
我目前正在开发一个使用内容脚本的扩展(jquery 是内容脚本之一),我注意到页面在长时间使用后会变慢。页面不是动态的,而是在每次点击时刷新(点击按钮时转到不同的页面)。如果我打开任务管理器,我可以清楚地看到内容脚本是造成内存泄漏的原因。
扩展被禁用(大约 20 次刷新后)
启用(大约 20 次刷新后)
我通过删除所有其他脚本并通过删除 jQuery 脚本来确认泄漏已缩小到 jQuery 和 jQueryUI 脚本,以便不再存在泄漏。
我使用的是最新版本的 jQuery,但在其他使用它的页面中没有看到这种泄漏。
我能做些什么来至少减少内存泄漏?
-- 编辑
扩展名是Project-Axeman,所以如果你认为它是其他泄漏的东西,你可以看看。
-- 更新
我已将 jQuery 替换为 beta 版本,但问题仍然存在...
【问题讨论】:
-
仅仅因为使用jQuery的扩展有泄漏,并不意味着jQuery有泄漏。
-
我认为 jQuery 没有泄漏,而且在 Github 存储库中,您的 jQuery 是一个空白文件。除了删除脚本之外,到目前为止,您还做了什么来调试您的应用程序?
-
@jjperezaguinaga jQuery 脚本不是空白的,它被最小化并且在 github 下不能正确显示(尝试使用水平滚动)。老实说,这是我的第一个 js 项目,所以我还没有进入内存分析。我已经拍摄了堆快照,但无法从中读取任何内容。
-
您提到您的应用程序“
refreshes on every click”让我想起了Content Scripts causing memory leak,其中不断重新注入重新加载 iframe 的内容脚本导致浏览器级内存泄漏。 jQuery 很可能与您的泄漏完全无关。 -
@apsillers 我已经纠正了错误——点击时,页面导航到另一个页面,并在那里重新注入内容脚本(不使用 iframe)。很抱歉造成误解。
标签: jquery google-chrome memory-leaks google-chrome-extension chromium