我正在运行nodejs(v8 8.12.0 LTS)。
我真的很想检查有关我的js代码的优化情况。
所以,我执行了此命令。
node --trace-opt --trace-deopt index.js
或
node --trace-opt --trace-deopt --trace-ic index.js
但是,没有显示任何内容。.在控制台上没有任何注释。
实际上我希望这样。
[取消优化(渴望进行DEOPT):开始0xc6b3e5e7fb9(选择#0)@ 1,FP至SP增量:24,调用方sp:0x7ffe2cde6f40] 读取输入帧myFunc => node = 4,args = 2,height = 1;输入: 0:0xc6b3e5e7fb9; [fp-16] 0xc6b3e5e7fb9 翻译框架myFunc => node = 4,height = 0 0x7ffe2cde6f10:[顶部+ 0] <-0xc6b3e5e7fb9;功能0xc6b3e5e7fb9(输入#0) [取消优化(急切):结束0xc6b3e5e7fb9 @ 1 =>节点= 4,pc = 0x30c7754496c6,调用方sp = 0x7ffe2cde6f40,状态= NO_REGISTERS,耗时0.047毫秒]
但是我认为使用v8选项的命令不起作用。
为什么我无法获得我期望的信息?
这是我的示例代码。
function myFunc(nb) {
return nb + nb;
}
for (let i = 0; i < 2000; ++i) {
myFunc(i);
}
for (let i = 0; i < 2000; ++i) {
myFunc(i + '');
}
答案 0 :(得分:0)
示例中的函数myFunc
很小,以至于2000次调用不足以触发对该函数的优化。尝试将其放大或更频繁地调用。