如何使用节点命令行v8选项检查优化情况

时间:2018-12-05 21:28:54

标签: node.js v8

我正在运行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 + '');
}

1 个答案:

答案 0 :(得分:0)

示例中的函数myFunc很小,以至于2000次调用不足以触发对该函数的优化。尝试将其放大或更频繁地调用。