javascript - 我可以从开发工具中获取 GC 的内存吗?

标签 javascript memory-leaks garbage-collection google-chrome-devtools

我有一个正在调试的大型应用程序。我注意到锯齿状内存模式,表明频繁进行 GC。

为了对此进行调试,我试图找到正在被 GC 处理的内存内容。使用开发工具可以在 chrome 中实现吗?我知道我可以拍摄堆快照,但我如何保证这会在 GC 之前和之后立即发生?我知道我可以从代码触发堆快照,但同样的问题。

最佳答案

在 DevTools 中还没有深入了解垃圾回收。我有 requested this feature虽然前段时间。您可以“加注星标”表示您也想拥有它。


至于快照,您将无法将它们用于您的目的。在制作每个快照之前,收集所有垃圾。

Are "dead" (unreachable) objects included in snapshots?

No. Only reachable objects are included in snapshots. Also, taking a snapshot always starts with doing a GC.

source


最好的方法是记录堆分配(“配置文件”>“记录堆分配”)并使用内存快照来了解应用正在创建哪些对象。有了这些知识,您就可以尝试识别短暂存在的对象(导致锯齿模式)。

顺便说一句,如果你正在使用requestAnimationFrame,你应该知道它是causing saw tooth pattern自己。

关于javascript - 我可以从开发工具中获取 GC 的内存吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27621798/

相关文章:

iphone - 何时释放 NSDictionary 实例及其所有值?

python - 多处理和垃圾收集

javascript - RxJS - 我需要退订吗

javascript - 如何使用 javascript 和 html 显示特定时区的内容

java - Eclipse MAT 不显示浅/保留的堆大小

javascript - javascript 是 "truly parallel"吗?

Android Canary 漏洞——计费和 ViewBinding

java - Android Activity 从未被 GC 导致内存不足异常

javascript - 检查网站是否为图像的函数

javascript - 网页开发 : how to access a variable from an embedded c code to javascript?