Java字节码编译器基准测试

时间:2010-06-12 07:03:16

标签: java jvm bytecode javac premature-optimization

Q.1。什么免费编译器可以生成最优的Java字节码?

Q.2。哪些免费虚拟机最快地执行Java字节码(在64位多核CPU上)?

Q.3。此列表中缺少其他(当前活动的)编译器项目:

Q.4。编译器可以做什么性能改进JIT不能(或不能)?

Q.5。最近的一些基准,比较或枪战(第一季度或第二季度)在哪里?

谢谢!

3 个答案:

答案 0 :(得分:6)

  

Q.1。什么免费编译器生成最快的可执行Java字节码?

问题没有意义。字节码未执行。当使用好的JIT时,编译的字节码将不会足以影响生成的机器代码的效率。

  

Q.2。哪些免费虚拟机最快地执行Java字节码(在64位多核CPU上)?

这是一个更好的问题。我相信它是JRockit

  

Q.3。此列表中缺少其他(当前活动的)编译器项目:

     

我相信你错过了JRockit。但是对于更完整的列表,我会看Wikipedia: List of Java Virtual Machines。查看他们是否活跃应该是一件容易的事。

  

Q.4。编译器可以做什么性能改进JIT不能(或不能)?

技术上我认为没有。在优化方面,字节码编译基本上是错误的。

  

Q.5。最近的一些基准,比较或枪战(第一季度或第二季度)在哪里?

谷歌是你的朋友。这两个是:

不幸的是,那些不包括那么多虚拟机。

答案 1 :(得分:1)

  

Q.4。编译器可以做什么性能改进JIT不能(或不能)?

JIT编译器可以执行全局优化。字节码编译器无法执行此操作,因为它无法查看在程序运行期间加载的所有库。

JIT编译器可以根据观察到的当前程序执行行为执行分支优化。字节码编译器不能这样做,因为在程序开始运行时,编译器已经不在图片中了。

答案 2 :(得分:0)

目前唯一可行的javac替代方案是Eclipse编译器。

看看它。问题是你发现效率低下,如果它真的很重要。