如何使用节点命令行 v8-options 检查优化

How to check optimization using node command-line v8-options

我是 运行 nodejs (v8 8.12.0 LTS)。

我真的很想检查我的 js 代码的优化。

所以,我执行了这个命令。

node --trace-opt --trace-deopt index.js

node --trace-opt --trace-deopt --trace-ic index.js

但是,没有显示.. 控制台上没有任何评论。

其实我是这样期待的

[去优化(DEOPT eager):开始 0xc6b3e5e7fb9(opt #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 => node=4,pc=0x30c7754496c6,调用者 sp=0x7ffe2cde6f40,state=NO_REGISTERS,耗时 0.047 ms]

但我认为它不适用于带有 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 + '');
}

您的示例中的函数 myFunc 非常小,2000 次调用不足以触发对其进行优化。试着把它变大,或者更频繁地调用它。