当我访问 Material Components Demo page 并在页面之间切换(例如 Autocomplete 和 Badge)时,我可以在 Chrome 开发工具性能监视器中看到, DOM 节点和 JS 事件监听器的数量不断增加。
示例:
- 我打开 Overview(在隐身窗口中,以便没有其他 chrome 扩展程序处于活动状态)
- 在内存选项卡上启动垃圾回收 (GC)
- DOM 节点 ~1800 / JS 事件监听器 ~400
- 现在点击左侧菜单中的Badge并启动GC
- DOM 节点 ~2400/ JS 事件监听器 ~500
- 返回概览并启动 GC
- DOM 节点 ~3500/ JS 事件监听器 ~700
注意:当我们访问多个页面然后启动GC时内存也会增加
垃圾回收不应该释放上一页的 dom 节点吗?
或者这是 Material Components 库(或演示应用程序)中的内存泄漏?
我之所以这么问是因为我们在我们的生产应用(很大)中也看到了这一点,而且它似乎对性能产生了严重影响。