我被我的应用程序的内存增量所困扰,因为它是单页面,我甚至不能重新加载它。在运行我的应用程序大约5-6个小时后,内存大小从初始加载到大约600mb,即120mb,我们做了一些修复,比如在componentWillunMount()中将ref设为null,内存在相同时间内相同的测试后减少到400MB,但我仍然可以看到有很多分离的元素,肯定是由代码的其他部分造成的,在快照文件中,我们可以从chrome内置功能中获取。那么,有没有办法在离开特定页面的同时删除所有分离的元素,或者为什么浏览器不从内存中删除它,因为分离的元素保留了一定大小的内存?
发布于 2018-10-30 15:14:41
只有在页面的DOM树或JavaScript代码中没有对
DOM节点的引用时,才能对其进行垃圾回收。
我建议你看一看你的代码,看看是否有函数在运行,而不是在你想要的时候。如果你使用react或类似的框架,你必须小心它们的生命周期(重要!)。
此外,这里有许多有用的信息,例如-按函数调查内存分配- https://developers.google.com/web/tools/chrome-devtools/memory-problems/频繁的垃圾回收
有没有什么方法可以在离开特定页面的同时删除所有分离的元素,或者为什么浏览器不从内存中删除它
如果我们所拥有的是I use javascript信息,我不能提供更准确的假设或建议。数不胜数的库、堆栈和技术的组合产生了无数的后果,这让人无法猜测。
https://stackoverflow.com/questions/53057828
复制相似问题