本文思路很清晰,分两步走。第一步,老的即时编译的缺陷致使新的编译器孕育而生。第二步,具体讲解Graal编译器的特性。java
先启动解释编译,分析出解释屡次的代码,使用c1编译器进行编译,再次分析c1编译器编译屡次的代码,使用c2编译器进行编译。安全
c2编译器是最重要的一环,由于c2编译出高度优化的机器码。
1.旧代码难以扩展和维护
2.使用更多的JVM内联函数,开发成本太大。函数
具体解释第二点缺陷
JVM启动的时候会检测运行在哪一个处理器上,而且更具特定的处理器生成特定的内联函数表,极大的运用了硬件的能力。这样就致使对于特定的处理器须要特定的内联表函数,就须要更多的内联函数。因此致使开发成本和维护成本大。工具
更好的编译Java代码,那么出发点就是JIT就是将字节码转换为机器码,在Java中就是从byte[]转到另一个byte[],那么转换代码可不能够用java来写。优化