确保JVM不优化

时间:2011-10-16 19:44:01

标签: java jvm

  

可能重复:
  how to make sure no jvm and compiler optimization occures

我试图比较一堆使用java实现的不同路径查找算法,我想计算时间,但我需要确保JVM不会在我背后进行任何优化?

2 个答案:

答案 0 :(得分:4)

我知道你在想什么 - 如果一种算法比另一种算法更有效地优化,优化会使结果产生偏差。但是,我建议优化是答案的一部分。如果我有两个路径查找算法,那么为什么我不赞成在它将执行的环境中更好地进行编译器优化?设计一种更好地优化的算法是设计更好的算法的一部分,不是吗?

我知道我并没有真正回答你的问题,但是我 建议优化的效果是你试图测量的时间结果的一部分。

答案 1 :(得分:0)

要以100%解释模式运行Java程序,可以在命令行中指定-Xint。要使JIT更具确定性,请使用-Xbatch标志。

-Xbatch
  

禁用后台编译。通常VM会编译   方法作为后台任务,在解释器模式下运行该方法   直到后台编译完成。 -Xbatch标志   禁用后台编译,以便编译所有方法   继续作为前台任务直到完成。

原则上,我同意Steve J的上述回应 - 但是,您可能希望收集有关未优化代码的信息以供比较。