Node.js(或v8周围的某个其他v8接口或包装器)能否输出来自v8 JIT的生成汇编代码?
我想看看各种片段生成的汇编代码长什么样。
Node.js(或v8周围的某个其他v8接口或包装器)能否输出来自v8 JIT的生成汇编代码?
我想看看各种片段生成的汇编代码长什么样。
你需要确保 node.js 是使用 V8 反汇编器构建的。在调试版中,它默认启用。对于发布版(在使用 GYP 构建的最新版本 Node.js 中),你可以通过以下方式启用:
GYP_DEFINES="v8_enable_disassembler=1 v8_object_print=1" ./configure
并重新构建节点。
当启用反汇编器时,您可以使用标志如 --print-code
、--print-code-stubs
、--print-opt-code
和 --code-comments
来查看 V8 生成的代码。
如果您想要调查优化编译器使用的 IR,请使用 --trace-hydrogen
并查看 hydrogen.cfg
(可以使用 C1 Visualizer 查看)。
node --expose-debug-as=d -e "function f(){return 1;}; d.Debug.disassemble(f)"
- slipheed