performance - 为什么一些分离的 DOM 与作为保留对象的原生 HTML 元素有未知的距离?

标签 performance google-chrome memory-leaks google-chrome-devtools v8

我注意到一些分离的 DOM 有未知的距离,而保留器有类似 native in HTMLAnchorElement 的东西。并且这些保留器不是实时的,也没有显示任何 javascript 引用。为什么距离看起来为零 -对于这些分离的 DOM。分离的 DOM 也显示 [3404] in (Global handles) @29 , [13] in (GC roots) @3在保持器树中。我可以摆脱这个分离的 DOM 的可能方法是什么。附上macOS Chrome heapsnapshot的Detached DOM截图。
Screenshot of Detached DOM of unknown Distance
Screenshot of Retainers showing Global handles and GC roots

最佳答案

迟到的答案,但我也浪费了很多时间来解决这个问题。所以希望这可以帮助其他面临类似问题的人。

只需运行 调试工具中控制台内的 clear() ,并拍摄另一个快照。 (还要确保您没有设置任何断点)

为什么这会起作用?我会让谷歌解释一下:

Sometimes objects may be retained by debugger context and DevTools console (e.g. after console evaluation). Create heap snapshots with clear console and no active breakpoints in the debugger.



(来自:https://developers.google.com/web/tools/chrome-devtools/memory-problems/memory-101)

关于performance - 为什么一些分离的 DOM 与作为保留对象的原生 HTML 元素有未知的距离?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48885529/

相关文章:

c# - Linq 性能 : Any vs. 包含

google-chrome - 为 GET 查询编写 Google Chrome 扩展

html - 为什么 Chrome 和 IE 显示的横幅尺寸与 Firefox 不同?

python - 带列表的高效正则表达式

Python:在不存储项目的情况下获取生成器中的项目数

html - 合并所有 bootstrap js 和 css 文件?

javascript - 如何从 chrome 扩展访问 angularjs 根范围

javascript - 优化Javascript函数内存泄漏

memory-leaks - 谁能向我指出一些调试单触摸内存泄漏的策略?

c++ - 我应该自己删除 boost::ptr_vector 的指针吗?