可能重复:
how to make sure no jvm and compiler optimization occures
我试图比较一堆使用java实现的不同路径查找算法,我想计算时间,但我需要确保JVM不会在我背后进行任何优化?
答案 0 :(得分:4)
我知道你在想什么 - 如果一种算法比另一种算法更有效地优化,优化会使结果产生偏差。但是,我建议优化是答案的一部分。如果我有两个路径查找算法,那么为什么我不赞成在它将执行的环境中更好地进行编译器优化?设计一种更好地优化的算法是设计更好的算法的一部分,不是吗?
我知道我并没有真正回答你的问题,但是我 建议优化的效果是你试图测量的时间结果的一部分。
答案 1 :(得分:0)
要以100%解释模式运行Java程序,可以在命令行中指定-Xint
。要使JIT更具确定性,请使用-Xbatch标志。
-Xbatch
禁用后台编译。通常VM会编译 方法作为后台任务,在解释器模式下运行该方法 直到后台编译完成。 -Xbatch标志 禁用后台编译,以便编译所有方法 继续作为前台任务直到完成。
原则上,我同意Steve J的上述回应 - 但是,您可能希望收集有关未优化代码的信息以供比较。