作为一项教育活动,我想检查V8生成的反汇编JS,并比较优化和未优化的版本,看看有什么变化,什么没有。
在Vyacheslav Egorov的JSConf 2012优秀幻灯片(http://s3.mrale.ph/jsconf2012.pdf)中,他建议像这样编译V8:
make ia32.release objectprint=on \
disassembler=on
out/ia32.release/d8 --print-opt-code \
--code-comments \
--trace-hydrogen \
test.js
这将使反汇编程序能够被好奇的内省所吸引。
然而,谈话是从2012年开始的,所以我有几个问题:
这是最好的做事方式吗?在此示例中,如何为test.js生成未优化的 JS与优化的 JS?是否可以在v8中挂钩和/或禁用优化器?
同样,如果我想做的只是检查最后的拆卸,氢气是否仍然与拆卸代码相关?我的理解是TurboFan will be replacing it soon,例如。