Godbolt可让您查看C ++和许多其他语言编译成的机器代码。
是否有办法对Javascript执行相同的操作?理想情况下,它应该是Chrome和Firefox中各种编译级别的结果(它们具有一系列逐步优化的编译器,如此处所述)。
是的! Node使您可以像这样打印V8字节码:
node --print-bytecode --print-bytecode-filter=my_function my_code.js
您can also运行带有--js-flags="--print-bytecode"
标志的Chrome。
虽然这只是字节码。 V8使用Turbofan将其编译为机器代码。您可以输出一些JSON文件,其详细信息如下:
node --trace-turbo my_code.js
并且在V8中有一个名为Turbolizer(托管版本here)的工具,可以可视化结果并明显显示生成的程序集。