Google chrome devtools 性能主要部分callstack显示了一个调用自身的函数,但该函数不是递归的
我编写了一个毫无意义的JavaScript程序来研究DevTools性能选项卡是如何工作的。我的程序没有任何递归,但是主要部分显示函数Google chrome devtools 性能主要部分callstack显示了一个调用自身的函数,但该函数不是递归的,google-chrome-devtools,Google Chrome Devtools,我编写了一个毫无意义的JavaScript程序来研究DevTools性能选项卡是如何工作的。我的程序没有任何递归,但是主要部分显示函数test2调用自身,请参见屏幕截图: 这是什么意思?我的职能是否在内部一分为二?或者这是否意味着该报告在设计上存在不准确之处 节目如下: <p><a id="test1" href="#">Do stuff</a></p> <script> function test1(e) { conso
test2
调用自身,请参见屏幕截图:
这是什么意思?我的职能是否在内部一分为二?或者这是否意味着该报告在设计上存在不准确之处
节目如下:
<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>
功能测试1(e){
控制台时间('test1');
var foo=[];
对于(var i=1;i)这很奇怪。我通常可以复制它,但如果我在DevTools设置中启用“v8 runtime calll stats on timeline”实验(按shift键5次以在“实验”选项卡中显示),一切都会按预期进行。Chrome还有一个功能(或以前有)显示一些内部方法的计时,所以这可能会混淆它。