【发布时间】:2017-04-15 07:08:33
【问题描述】:
我正在为一个使用 Lightstreamer 向浏览器发送大量数据的外国网站(我不控制它)开发 chrome 扩展。
在没有打开 DevTools 的情况下,网站可以长时间正常运行(例如:8 小时)
当我打开 DevTools 时,它会在大约 15 分钟后耗尽内存。
我观察 Chrome 的 Task Mgr 并显示“JavaScript 内存”列,我可以观察到内存在增加。
JS mem 列显示 2 个值,总计和活量。它们都会增长,直到选项卡消失,DevTools 窗口会自动关闭。
如果我提前关闭 DevTools 选项卡,Task Mgr 会显示内存值急剧下降,好像垃圾收集终于开始了。
这只发生在这个单一的网站上,所以它可能使用了糟糕的编码习惯,但由于我无法控制它,这让我的扩展调试很痛苦。
我最近重置了 DevTools 设置并重新启动了整个计算机,但症状仍然存在。
我想知道其他人是否遇到过这种情况,除了每 5 分钟关闭 DevTools 选项卡以保存选项卡之外,我还能做些什么来尽量减少此问题?
谢谢
【问题讨论】:
-
我绝对可以确认,在 Linux 和 Windows 中,使用任何循环遍历各种大小的内存对象(例如显示视频)的东西,Dev-Tools 可以无限增加它的内存使用量。为了测试,我使用了一个简单的加载和显示循环测试,将不同的图像转换为 DIV。如果我注释掉显示行,没问题。如果我禁用 DevTools,没问题。然后我在 Electron 4、6 和 7 中尝试了不同的 V8 版本,然后是新 PC、新 Windows、新 Ubuntu,结果相同,但对我来说,它与可变大小图像的显示有关。 (字节不是尺寸)。
-
我对 Canary 中的 Chrome 89-90 和 92 有类似的问题。在 88 中,这还不错。但是在我的应用程序中 89 之后,只有在开发工具打开时。每次点击消耗大约 250MB 的内存 :)
标签: out-of-memory google-chrome-devtools