我一直在使用canvas标签开发HTML 5游戏,而且我已经建立了相当大的代码库来满足我的需求。我还想确保我掩盖所有内存泄漏。
我怀疑我是否正确地做到了,因为我从Chrome的任务管理器和分析工具获得的反馈似乎表明我的清理最终没有效果。
这是一张图片,所以你可以看到我的意思:
所以你可以看到,一旦我清理内存,就会冻结并且不会掉线。这是内存泄漏吗?
当我在Profiler中运行我的网页并在清理之前和之后检查了堆时,它似乎删除了对我的对象的所有引用(并且它们消失了)但是我的使用只下降了几千字节而留下了大约1.3mb的后面的数组,字符串和其他对象。难道不可能抓住这一切或是否存在重大错误?
感谢。
答案 0 :(得分:3)
在探查器窗口的底部有一个看起来像垃圾桶的图标,它会强制通过GC。
点击它,看看它是否清除了剩余的内存。
Chrome / V8可能认为内存情况不够糟糕,无法运行垃圾收集。
答案 1 :(得分:1)
尝试chrome://memory-redirect/
(或about:memory
,两者都去同一个地方)。它将向您显示每个选项卡/等使用的确切内存量,以及IE,Opera,Firefox等中标签/等使用的内存(如果您同时打开这些内存)。原始数字应该比分析内存使用中潜在泄漏的图表更有帮助。
答案 2 :(得分:1)
您可以比较两个堆快照并查看增量。您还可以直接查看内存快照:https://developers.google.com/chrome-developer-tools/docs/heap-profiling-comparison?hl=pt-PT