了解Chrome堆配置文件

Dan*_*ams 6 javascript google-chrome-devtools

我正在尝试诊断SPA.当应用程序空闲时,我拍摄了两张快照,一张接一张.这是下面的快照.如您所见,这些物体的浅尺寸非常大.但我不知道它们是什么,或者它们来自何处.(编译的代码)对我没有意义,deoptimization_data或relocation_info也没有意义.

有谁知道如何使用这些信息来实际追踪大型应用程序中的泄漏?

在此输入图像描述

loi*_*slo 5

请使用此处描述的技术:用于跟踪JavaScript内存泄漏的工具

Chrome中的Javacript引擎(称为v8)可以快速执行脚本.实际上它会动态编译所有的js代码(JIT).如果删除所有调用和对它的引用,则编译的代码可能变得不必要.即你可能在DOM树中有一个带有事件监听器的元素,在某些时候你可以从DOM树中删除这个元素.因此,事件侦听器的代码将变得不必要,v8应该能够删除该代码.因此,v8将编译后的代码保存在与对象,数组,字符串等相同的托管堆中.

当您查看堆快照时,您会看到堆中的所有内容,包括与代码相关的所有内容,如代码重定位信息,去优化数据,带行尾的数组,脚本文本等.