4

我已经搜索了整整一天,但找不到为什么在我的 phonegap 应用程序中出现如此大的内存泄漏的问题,该应用程序对服务器使用了大量的 ajax-jsonp 请求。

因此,我将其分解为最简单的示例。您可以在 jsfiddle 上找到它。

它的主要内容是:

function run(){
   $.ajax({
        dataType: 'jsonp',
        url: "http://thawing-bayou-7281.herokuapp.com/test.js",
        success: function (res) {
            // some stuff here
            setTimeout(run, 250);
        }
    });
};
run();

因此,此代码每 250 毫秒无限次调用 jsonp api 请求。

请注意:我知道这是一个你永远不会这样实现的例子!它只是用于检测内存泄漏。

当我运行这个示例时,使用的内存迅速增加(您可以在 Chrome 时间轴选项卡中看到它最好的情况)。 DOM 节点在此处输入图像描述 的数量也在迅速增加。在某些时候它会崩溃(可能是一些 GC?),但元素和所需的内存会迅速增加。

你们中有人知道如何解决这个问题吗?

谢谢!

4

1 回答 1

4

这不是内存泄漏,锯齿型图在 java 中很常见。内存使用率上升,垃圾收集器被调用,然后下降。你展示的图表就是这样一种情况。

如果图表的低点持续增加,您将出现内存泄漏,而这并未显示在图表中。

于 2013-08-07T15:33:03.263 回答