从节点转储v8 JIT输出

node.js(或者一些其他的v8接口或v8的wrapper)能从v8 JIT中输出生成的程序集吗?

我想看看生成的程序集看起来像各种片段。

您需要确保node.js是在启用V8反汇编程序的情况下构build的。 debugging版本将默认启用它。 对于发布版本(在最近使用GYP构build的足够的节点),您可以通过执行以下操作来启用它:

 GYP_DEFINES="v8_enable_disassembler=1 v8_object_print=1" ./configure 

并重build节点。

启用反汇编器时,可以使用像--print-code ,– --print-code-stubs--print-opt-code --code-comments --print-opt-code--code-comments这样的--code-comments来检查由V8生成的代码。

如果您想研究优化编译器使用的--trace-hydrogen使用的IR并查看hydrogen.cfg (可以用C1 Visualizer查看)。