我如何解释铬的“记录堆分配”图表?

时间:2015-12-04 16:36:16

标签: javascript debugging memory-leaks chromium

如果我看到:

enter image description here

我是否应将此解释为蓝线当前已分配内存,灰线是否已分配和释放?我正在努力理解如何阅读这些,以便我能理解我是否正在编写漏洞的Javascript代码。我来自C / C ++背景,并试图了解Javascript的垃圾收集应如何处理我的代码。

供参考,这是我加载的内容:

的test.html:

<html>
<head>
<script type="text/javascript" src="autoreload.js"></script>
</head>
</html>

autoreload.js:

function checkAndReload()
{
  var http = new XMLHttpRequest();
  http.open('HEAD', window.location.href);
  http.onreadystatechange = function(){
    if (http.readyState !== XMLHttpRequest.DONE) {
      return;
    }
    if (http.status !== 200) {
      return;
    }

    // compare current last modified with last modified from server
    var this_last_modified = Date.parse(document.lastModified);
    var checked_last_modified = Date.parse(http.getResponseHeader("Last-Modified"));
    var diff = checked_last_modified - this_last_modified;

    if(diff > 0) location.reload(true);
  };
  http.send();
}


// run checkAndReload() once per second
window.setInterval(checkAndReload, 1000);

我正在尝试实现一个脚本,在<script ...></script>行存在的情况下自动重载页面。谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

在这里看起来很好解释:https://www.youtube.com/watch?v=KKwmdTByxLk

灰色条表示将来某个时候垃圾收集器将收集内存,蓝色条表示内存被主动引用,不会被垃圾回收。