sha*_*del 2 java testing junit caching jvm
我试图测试一些队列插入和删除对象时间戳.经过几次测试后,我在同一代码上的速度提升了80倍.这看起来很明显是JVM或硬件\ cpu缓存的缓存结果,但我希望每次运行都能得到新的结果.
有没有办法从Java代码中以编程方式清除这两个缓存中的任何一个?
ass*_*ias 5
这可能是由于JIT的推出.在一定次数的运行之后,JIT会将您的字节码编译为机器代码,以提高效率.
您可以通过设置-XX:CompileThreshold选项(默认值为10,000)或排除您的类完全优化来更改方法优化之前的调用次数.
-XX:CompileThreshold
但是我不确定为什么要禁用编译器并强制程序运行得更慢.
归档时间:
12 年,8 月 前
查看次数:
1008 次
最近记录:
12 年,2 月 前