Memory leaks JS堆逐渐上升,然后下降。这是内存泄漏吗?

Memory leaks JS堆逐渐上升,然后下降。这是内存泄漏吗?,memory-leaks,Memory Leaks,我正在开发一个应用程序,其中有很多代码对我来说都是黑匣子。在调试其他一些东西时,我注意到,如果在选项卡之间来回切换,旧的选项卡r g正如您所提到的,根作用域上的任何内容都不会被GC: 标记扫描算法 该算法将“不再需要对象”的定义简化为“无法访问对象” 该算法假设一组称为根的对象的知识(在JavaScript中, 根是全局对象)。垃圾收集器会定期 将从这些根开始,查找从中引用的所有对象 这些根,然后是从这些根引用的所有对象,等等 因此,从根开始,垃圾收集器将找到所有可访问的对象 对象并收集所有无法

我正在开发一个应用程序,其中有很多代码对我来说都是黑匣子。在调试其他一些东西时,我注意到,如果在选项卡之间来回切换,旧的选项卡r
g

正如您所提到的,根作用域上的任何内容都不会被GC:

标记扫描算法

该算法将“不再需要对象”的定义简化为“无法访问对象”

该算法假设一组称为根的对象的知识(在JavaScript中, 根是全局对象)。垃圾收集器会定期 将从这些根开始,查找从中引用的所有对象 这些根,然后是从这些根引用的所有对象,等等 因此,从根开始,垃圾收集器将找到所有可访问的对象 对象并收集所有无法访问的对象


通常,一个健康的堆看起来与您发布的图完全相同。问题是,如果它在GC之后没有返回(在一个实用的世界中:接近)基线。

正如您所提到的,根范围上的任何内容都不会被GC删除:

标记扫描算法

该算法将“不再需要对象”的定义简化为“无法访问对象”

该算法假设一组称为根的对象的知识(在JavaScript中, 根是全局对象)。垃圾收集器会定期 将从这些根开始,查找从中引用的所有对象 这些根,然后是从这些根引用的所有对象,等等 因此,从根开始,垃圾收集器将找到所有可访问的对象 对象并收集所有无法访问的对象


通常,一个健康的堆看起来与您发布的图完全相同。问题是,如果它在GC之后没有返回(在一个实用的世界中:接近)基线。

我不确定我是否理解关于选项卡切换的部分,但一般来说,一个健康的堆将与您发布的图完全相同。问题在于GC后是否没有回到(接近)基线。背景信息:好的,谢谢。我还刚刚意识到,通过引用窗口上的对象,我可以保证它不会被垃圾收集,除非有人显式地调用delete。我不确定我是否理解关于选项卡切换的部分,但一般来说,一个健康的堆看起来与您发布的图完全一样。问题在于GC后是否没有回到(接近)基线。背景信息:好的,谢谢。我还刚刚意识到,通过引用窗口上的对象,我可以保证它不会被垃圾收集,除非有人显式地调用delete。我不确定我是否理解关于选项卡切换的部分,但一般来说,一个健康的堆看起来与您发布的图完全一样。问题在于GC后是否没有回到(接近)基线。背景信息:好的,谢谢。我还刚刚意识到,通过引用窗口上的对象,我可以保证它不会被垃圾收集,除非有人显式地调用delete。