代码之家  ›  专栏  ›  技术社区  ›  Andrew Moore

如何跟踪和调试Firefox中的javascript内存泄漏?

  •  16
  • Andrew Moore  · 技术社区  · 16 年前

    一个月来,我一直在努力追踪这条路线,但没有取得任何成功。我在一个汽车广告网站上有这段代码,它基本上允许缩略图在搜索结果中旋转,因为一辆汽车有多张图片。您可以在以下位置看到它的实际操作:

    http://www.abcavendre.com/4506691919/

    它是建立在 mootools 1.2 框架。问题是,在firefox 3下,当一个页面上满是这些旋转图片时,这个脚本会消耗大量的内存,比如这个清单页面:

    http://www.abcavendre.com/Vitrine/Israel_Huttman/

    您可以在此处看到相关脚本的源代码:

    http://www.abcavendre.com/scripts/showcase_small.js

    关于是什么导致了记忆泄漏有什么想法吗?奇怪的是这个代码在IE7下的行为是正确的。

    3 回复  |  直到 13 年前
        1
  •  8
  •   Joe Scylla    16 年前

    一种跟踪Firefox内存泄漏的方法是 Leak Monitor Addon . 它显示了JavaScript的内存泄漏(包括扩展脚本)。

    请注意,插件有时会显示泄漏的对象,这些对象稍后会被垃圾收集清除。如果是这种情况,插件将启动一个新窗口,显示您的新状态。

        2
  •  0
  •   Thomas Aylott    16 年前

    更新到mootools 1.2.1,我们改进了垃圾收集和泄漏处理。

        3
  •  0
  •   brainjam    13 年前

    在初始化函数的末尾尝试使元素变量数组无效

        ...
    
        if (ads.length > 0)
            {
            this.imagesFx = new Fx.Elements(elements,
                {
                wait: false,
                duration: 1000
                });
            this.moveNext.periodical(2500, this);
            }
    
        elements = null; //Add THIS!
    }