可能重复:
how to make sure no jvm and compiler optimization occures
我试图比较一组使用java实现的不同路径查找算法,我想对这些算法进行计时,但我需要确保JVM不会在我的背后做任何优化?
发布于 2011-10-16 19:53:12
我知道你在想什么--如果一种算法比另一种算法更有效的话,优化会扭曲结果。但让我建议,优化是答案的一部分。如果我有两种路径查找算法,那么为什么我不倾向于在它将要执行的环境中对编译器进行更好的优化呢?设计一个优化更好的算法是设计更好算法的一部分,不是吗?
我知道我并没有真正回答你的问题,但我建议优化的效果是你尝试的时机结果的一部分。
发布于 2011-10-16 19:59:29
若要在100%解释模式下运行Java程序,可以在命令行上指定-Xint。要使JIT的行为更具确定性,请使用-Xbatch标志。
-Xbatch禁用后台编译。通常,VM会将方法编译为后台任务,在解释器模式下运行该方法,直到后台编译完成为止。-Xbatch标志禁用背景编译,以便将所有方法的编译作为前台任务进行,直到完成为止。
在原则上,我同意Steve上面的回答--不过--您可能希望收集关于未优化代码的信息,以便进行比较。
https://stackoverflow.com/questions/7786797
复制相似问题