获取 JavaScript 编译器生成的汇编代码

Dan*_*Ruf 4 javascript assembly trace v8 node.js

我正在使用带有 Ignition 和 Turbofan 的 v8/Node 8.8,并试图获取由我的 JavaScript 生成的汇编代码,但到目前为止,asm 和代码输出的大小相同,与实际代码差异无关。

所以 node --trace-hydrogen --trace_phase=Z --trace_deopt --code_comments --hydroge n_track_positions --redirect_code_traces --trace_hydrogen_file=test.js --print_ code test.js似乎只输出编译器本身的代码,而不是处理后的JS代码后面的代码。

Ignition / Turbofan 需要哪些标志?

jmr*_*mrk 5

作为解释器的 Ignition 不会生成汇编代码。

对于 Turbofan,标志是--print-opt-code

  • V8 本身在启动时不打印任何(字节)代码。我不知道你在看什么;我猜这是 Node 的初始化/启动。无论如何,`--print-bytecode --print-bytecode-filter=my_function` 只打印 `function my_function(....) { ... }` 的字节码。 (3认同)