如何使用节点命令行 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 次调用不足以触发对其进行优化。试着把它变大,或者更频繁地调用它。
我是 运行 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 次调用不足以触发对其进行优化。试着把它变大,或者更频繁地调用它。