应用程序在浏览器中运行数小时时的内存增量



我被应用程序的内存增量卡住了,因为它是单个页面,我甚至无法重新加载它。在运行我的应用程序大约5-6个小时后,内存大小从初始加载到大约600mb,即120mb,我们对此进行了一些修复,比如在组件WillunMount((中将ref设置为null,经过相同时间的相同测试,内存已减少到400mb,但我仍然可以看到有很多分离的元素,这肯定是由代码的其他部分引起的,在快照文件中,我们可以从chrome内置功能中获取。那么,有没有什么方法可以在离开某个页面时删除所有分离的元素,或者为什么浏览器不将其从内存中删除,因为分离的元素保留了一定大小的内存?

只有在页面的DOM树或JavaScript代码中没有引用DOM节点时,才能对其进行垃圾收集。

我建议你看看你的代码,看看是否有函数在你想要的时候没有运行。如果你使用react或类似的框架,你必须小心它们的生命周期(重要!(。

也在这里https://developers.google.com/web/tools/chrome-devtools/memory-problems/有许多有用的信息,例如-按函数调查内存分配-发现频繁的垃圾收集

那么,有没有任何方法可以在离开特定页面时删除所有分离的元素,或者为什么浏览器不将其从内存中删除

如果我们掌握的是I use javascript信息,我无法提供任何更准确的假设或建议。库、堆栈和技术的无数组合所产生的无数后果使这一点无法猜测。

相关内容

最新更新