V8不会打印出拆卸

时间:2018-01-22 22:13:36

标签: 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不输出任何内容(也没有错误消息):

./d8 --print-code test.js

test.js包含以下内容:

function add(a, b){
  return a + b;
}

1 个答案:

答案 0 :(得分:2)

V8懒惰地编译函数(即首次调用它们时),因此当您的文件只包含Array(totalStars)时,这就是您没有看到任何输出的原因之一。尝试添加通话,例如function add(...) {...}

此外,最新版本的V8使用字节码解释器而不是立即生成机器代码。您可以使用add(1, 1)打印字节码。

机器代码只有在优化编译器生成后才会生成#34; hot" (对于测试中的--print-bytecode这样的小函数,这意味着调用它几千次); add打印优化的机器代码。

(旁注:在V8的Debug版本中,始终启用反汇编程序支持,因此您不需要任何自定义标记。)