作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
专业 JavaScript
网络浏览器引擎和nodeJS
有过just-in-time
编译器多年。
我只是在观看 Compiler Explorer 上的视频显示了许多编译器为各种 CPU 输出的汇编代码。
这让我想起了我一直对 JS 引擎的 jits 生成的代码感到好奇。
这些引擎是否有办法让我们看到低级生成的代码?
(如果这在 SO 上不合适,请随时将其迁移到正确的 SE 站点。)
最佳答案
对于 V8,有一个标志 --print-opt-code
,它为每个得到优化的函数打印生成的优化汇编代码。请注意,函数只有在“热”时才会得到优化,而不是立即进行优化,因此对于简短的“hello, world”样式程序,该标志不会打印任何内容。您可以通过大量调用函数来使函数“热”。
在旧版本中,有一个 --print-code
未优化代码的标志,但由于基线(非优化)编译器已被解释器替换,因此不再有未优化代码。您可以使用 --print-bytecode
打印生成的字节码.
如果您使用的是 Chrome,您可以通过将它们包装在 --js-flags 中来指定要传递给 V8 的标志,例如--js-flags="--print-opt-code"
.
关于javascript - 有没有办法查看由任何 JavaScript jit(尤其是 V8)生成的代码的汇编代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48007072/
我是一名优秀的程序员,十分优秀!