为什么JIT编译器需要在生成机器代码之前将字节码转换为另一个中间表示

时间:2017-12-14 10:26:37

标签: java jvm jit jrockit

我正在使用优秀的书Oracle JRockit: The Definite Guide学习JVM。我真正得到的一件事是需要JIT编译器将字节码转换为另一个中间表示(IR),优化它们然后转换为本机代码。

根据{{​​3}},字节码已经是一种IR。为什么JRockit中的JIT编译器不直接优化字节码?我的猜测是,在字节码上执行优化比在另一个IR上更难(例如:C),但我完全不确定。

1 个答案:

答案 0 :(得分:0)

某些优化取决于目标体系结构(指令集等),因此在字节码上是不可能的,这与体系结构无关。