性能主要部分的调用堆栈显示了一个调用自身的函数,但该函数不是递归的

时间:2018-10-21 02:30:32

标签: google-chrome-devtools

我写了一个无意义的JavaScript程序来研究“ DevTools性能”选项卡的工作方式。我的程序没有任何递归,但是主要部分显示函数test2会自行调用,请参见屏幕截图:

enter image description here

那是什么意思?我的职能在内部被一分为二吗?还是说报表设计有误?

这是程序:

<p><a id="test1" href="#">Do stuff</a></p>
<script>
  function test1(e) {
    console.time('test1');
    var foo = [];
    for (var i = 1; i <= 1000; i++) {
      test2(foo, i);
    }
    console.timeEnd('test1');
  }

  function test2(foo, i) {
    for (var j = 1; j <= 100000; j++) {
      if (i * j % 211 === 0) {
        test3(foo);
      }
      else {
        foo.push(i * i - i);
      }
    }
  }

  var k = 0;
  function test3(foo) {
    if (k++ % 1733 === 0) {
      console.count('test3');
    }
    foo = [];
  }

  document.getElementById('test1').addEventListener('click', test1);
</script>

0 个答案:

没有答案