0

可能重复:
jQuery 内存泄漏怀疑

我注意到标签打开的时间越长,我们的网站就越慢。使用 Chrome 的任务管理器,我缩小了问题范围:

每次调用以下代码行时,内存使用量都会增加:

$jquery.post(url, params);

我在 1 秒计时器上实现了这段代码,几分钟内内存使用量从 30MB 变为 250MB。仅注释掉这一行代码即可解决问题。请注意,我只注释掉这一行;我仍然让 URL 和参数生成。所以问题肯定和这行代码有关。每次运行大约会消耗 2MB 更多的内存。

显然存在某种内存泄漏。我希望它与结果的缓存或 JSON 反序列化有关(JSON 结果可能相当大)。

任何人都可以提供解决方法或解决方案吗?即使只是强制进行一些垃圾收集也是可以接受的。FWIW,内存使用量偶尔会减少,但幅度不大(垃圾收集?)。我刚刚看到它从 300MB 下降到 250MB,但现在又开始缓慢上升。

更具体地说,代码看起来像这样......

...

    init: function()
    {
        setInterval(function(){ SManager.updateAll(); }, 1000);
    },

    updateAll: function() 
    {
        var url = SManager.SERVER_URL;
        var params = new Object();
        params.version = 1;
        params.platform = 'web';

        $jquery.post(url, params);
    },

谢谢!

4

2 回答 2

1

使用分析工具查找未进行垃圾收集的大型对象。例如在 Chrome F12 / Profiling / Heap trace 中。

于 2012-04-17T17:25:14.987 回答
1

与stackoverflow上的解决方案类似的问题我相信您的解决方案problem可以在这里找到:

jQuery 内存泄漏疑点

于 2012-04-17T18:21:04.537 回答