Javascript:带循环的内存泄漏?

时间:2011-11-14 18:56:49

标签: javascript memory loops memory-leaks

我有一个简单的循环来创建和销毁(希望)空对象: http://jsfiddle.net/TgWze/

function Test()
{
}

function generate()
{
    for(var i = 0; 1000 > i; ++i)
    {
        var view = new Test();

        delete view;
    }
}

如果我一直点击链接,Chrome / Safari中的内存配置文件会显示内存泄漏行为: http://cl.ly/BnCV

我错过了什么吗?

3 个答案:

答案 0 :(得分:3)

这是托管记忆。因此,当垃圾收集器运行时,它将在某个时刻收集已删除的对象。删除对象实际上没有做任何事情。但是,因为视图永远不会被引用,所以应该很容易收集它。

答案 1 :(得分:3)

这看起来像普通的GC行为。一旦有太多物体,GC就会清理它们。

如果每个峰值之后的谷(在GC运行之后)逐渐变高,那只会是内存泄漏,这表明GC没有捕获所有内容。

答案 2 :(得分:0)

该代码不泄漏。

为了说服自己,你可以拍摄内存的快照并在之前和之后进行比较。请查看我编写的本指南,了解更多详情:http://www.vladalexandruionescu.com/2012/08/javascript-memory-leaks.html