Javascript V8将不打印拆解
我使用反汇编程序选项编译了v8:Javascript V8将不打印拆解,javascript,v8,Javascript,V8,我使用反汇编程序选项编译了v8: tools/dev/v8gen.py x64.debug -- v8_enable_disassembler=true v8_enable_object_print=true ninja -C out.gn/x64.debug 但是,当我尝试打印反汇编时,d8不会输出任何内容(也没有错误消息): test.js包含以下内容: function add(a, b){ return a + b; } V8缓慢地编译函数(即,当它们第一次被调用时),因此当您
tools/dev/v8gen.py x64.debug -- v8_enable_disassembler=true v8_enable_object_print=true
ninja -C out.gn/x64.debug
但是,当我尝试打印反汇编时,d8不会输出任何内容(也没有错误消息):
test.js包含以下内容:
function add(a, b){
return a + b;
}
V8缓慢地编译函数(即,当它们第一次被调用时),因此当您的文件仅包含
函数add(…){…}
时,这就是您没有看到任何输出的原因之一。尝试添加呼叫,例如add(1,1)
此外,V8的最新版本使用字节码解释器,而不是立即生成机器代码。您可以使用--print bytecode
打印字节码
只有在函数“热”时,优化编译器才会生成机器代码(对于测试中的add
这样的小函数,这意味着调用它几千次)<代码>--打印选项代码打印优化的机器代码
(旁注:在V8的调试版本中,反汇编程序支持始终处于启用状态,因此您不需要任何自定义标志。)V8延迟编译函数(即第一次调用函数时),因此当您的文件仅包含
函数add(…){…}
时,这就是您看不到任何输出的原因之一。尝试添加呼叫,例如add(1,1)
此外,V8的最新版本使用字节码解释器,而不是立即生成机器代码。您可以使用--print bytecode
打印字节码
只有在函数“热”时,优化编译器才会生成机器代码(对于测试中的add
这样的小函数,这意味着调用它几千次)<代码>--打印选项代码打印优化的机器代码
(旁注:在V8的调试版本中,始终启用反汇编程序支持,因此您不需要任何自定义标志。)可能重复的可能重复的
function add(a, b){
return a + b;
}