Memory leaks ng是否存在内存泄漏?

Memory leaks ng是否存在内存泄漏?,memory-leaks,angularjs,Memory Leaks,Angularjs,我使用ng include切换不同的数据页,这将进行大量的数据渲染 我发现浏览器的内存使用量一直在增长,而且从未下降 代码 代码非常简单 HTML代码: <body ng-controller="MainCtrl"> <div> <button ng-click="url='nodata.html'">No data</button> <button ng-repeat="i in getNumArray(10)" ng-

我使用
ng include
切换不同的数据页,这将进行大量的数据渲染

我发现浏览器的内存使用量一直在增长,而且从未下降

代码 代码非常简单

HTML代码:

<body ng-controller="MainCtrl">
  <div>
    <button ng-click="url='nodata.html'">No data</button>
    <button ng-repeat="i in getNumArray(10)" ng-click="loadData(i)">Load data {{i}}</button>
  </div>
  <hr/>
  [{{url}}]
  <div ng-include="url"></div>
</body>
这是一个现场演示:

当我用chrome打开实时演示时,初始化内存使用量不到100M。然后我点击“加载数据”按钮,它将很快增长到300M,并且不会后退,即使我点击“无数据”按钮加载“nodata.html”

这正常吗?
ng包含的
是否存在内存泄漏或我是否遗漏了任何内容?或者内存使用很好,我不需要担心它

截屏视频 我创建了一个屏幕广播来展示:


尝试升级到1.0.5版。它似乎没有这个问题。
我相信这是因为在1.0.3/4中,当模板中有顶级空白节点时,内存泄漏。

Stackoverflow不是提交bug的地方。请将问题提交至,并在此处继续讨论

我已将用例简化为单个文件:

这是我发现的

  • 仅在Windows上泄漏,在Mac OS X上不泄漏
  • 只有plunker的漏洞。当我在plunker外运行时,它运行良好

  • 你能在plunker之外重现这个问题吗?

    你在使用chrome扩展吗?它倾向于制作数据量大、速度慢的角度应用程序。也可以尝试在自己的窗口上运行它。Plnkr.co在安装了memoryI的情况下不是很好,但没有启用它。我还尝试了clean chrome和firefox,两者都有相同的问题。我使用plnkr.co来演示这个问题,你可以下载源代码在你自己的计算机上测试。即使我使用1.0.5,仍然有同样的问题。我刚在chrome上试用过,内存很快就增长到300M,而不是在我的机器上。你还在Pnkr中运行吗?尝试单独运行。我刚刚尝试过,它在单独的chrome(版本:26.0.1410.5)中存在相同的问题。我在Windows上的chrome也存在相同的问题。您是否找到了问题的解决方案?您可以在plunker之外运行应用程序,方法是:应用程序不会泄漏到plunker之外(使用上面的链接),并且在Windows上使用Chrome Canary(版本27.0.1436.1 Canary),即使我在单独的plunker(Chrome版本:26.0.1410.5)中运行,它也会泄漏
    app.controller('MainCtrl', function($scope) {
      $scope.url = "nodata.html";
      $scope.loadData = function(n) {
        $scope.url = "data" + n + ".html";
      }
    
      $scope.getNumArray = function(n) {
        var arr = [];
        for(var i =0;i<n;i++) {
          arr.push(i);
        }
        return arr;
      }
    });
    
    app.controller('DataCtrl', function($scope, $http){
      $http.get('data.json').success(function(data){
          $scope.data = data;
      })
    });
    
    <div ng-controller="DataCtrl">
      <table ng-repeat="x in getNumArray(500)">
        <tbody>
          <tr>
            <td>{{data["key0"]}}</td>
            <td>{{data["key1"]}}</td>
            <td>{{data["key2"]}}</td>
            <td>{{data["key3"]}}</td>
            <td>{{data["key4"]}}</td>
            <td>{{data["key5"]}}</td>
            <td>{{data["key6"]}}</td>
            <td>{{data["key7"]}}</td>
            <td>{{data["key8"]}}</td>
            <td>{{data["key9"]}}</td>
          </tr>
        </tbody>
      </table>
    </div>
    
    <div>No data yet.</div>
    
    {
      "key0": "sdf sdf sdf sdf sdf sdf sdf sdf sdf sd fds fds fsd fds fds fds fds fsd fds fds f",
      "key1": "sdf sdf sdf sdf sdf sdf sdf sdf sdf sd fds fds fsd fds fds fds fds fsd fds fds f",
      "key2": "sdf sdf sdf sdf sdf sdf sdf sdf sdf sd fds fds fsd fds fds fds fds fsd fds fds f",
      "key3": "sdf sdf sdf sdf sdf sdf sdf sdf sdf sd fds fds fsd fds fds fds fds fsd fds fds f",
      "key4": "sdf sdf sdf sdf sdf sdf sdf sdf sdf sd fds fds fsd fds fds fds fds fsd fds fds f",
      "key5": "sdf sdf sdf sdf sdf sdf sdf sdf sdf sd fds fds fsd fds fds fds fds fsd fds fds f",
      "key6": "sdf sdf sdf sdf sdf sdf sdf sdf sdf sd fds fds fsd fds fds fds fds fsd fds fds f",
      "key7": "sdf sdf sdf sdf sdf sdf sdf sdf sdf sd fds fds fsd fds fds fds fds fsd fds fds f",
      "key8": "sdf sdf sdf sdf sdf sdf sdf sdf sdf sd fds fds fsd fds fds fds fds fsd fds fds f",
      "key9": "sdf sdf sdf sdf sdf sdf sdf sdf sdf sd fds fds fsd fds fds fds fds fsd fds fds f"
    }