【发布时间】:2016-04-06 11:00:51
【问题描述】:
我想在任何桌面浏览器中找到一种方法来确定垃圾收集正在释放哪些 JavaScript 分配的对象。请注意,我不是试图跟踪“泄漏”。泄漏是没有被释放的对象。
在 Firefox 中,我正在查看的网络应用程序偶尔会出现卡顿(停止响应击键超过 1 秒);分析显示,在那段时间里,浏览器正在执行一个冗长的 GC。在前几秒钟内,添加了大量内存(以小块的形式,而不是一次全部添加)。当 GC 发生时,几乎所有的内存都会被释放。
我想弄清楚的是:这些短命的对象到底是什么是?我很想知道它们的值、它们的类型,或者它们在 JS 中的分配位置。
Web 应用在所有浏览器中都表现出相同的分配模式(尽管似乎只有 Firefox 遭受了冗长的 GC);所以我很乐意使用任何浏览器(Mac 或 Windows)来调试它。
我已经知道如何使用 Chrome 的开发工具来查看泄露的对象,但正如我上面提到的,泄露不是我关心的问题。我想不出一种方法来查看哪些对象被分配然后被释放。
【问题讨论】:
标签: javascript garbage-collection google-chrome-devtools firefox-developer-tools