如果我想比较一个算法的2个实现的速度,有没有关于我应该注意的JIT的问题?例如,JIT需要多少次迭代才能“热身”(如果确实如此 - 我对JIT不是很熟悉)?我有一个类似合并的算法,我想使用迭代器和直接使用原始基元数组进行比较。我想了解JIT如何处理基于迭代器的算法。
我担心的是,我的比较并不重要,因为我没有让基准测试运行得足够长,JIT也没有机会完成它的工作。
此外,最好的参考是深入理解JIT(除了阅读源代码)。
答案 0 :(得分:3)
有关于我应该注意的JIT的问题吗?
太多了。 ;)
不要忘记CPU和缓存会进行自己的优化和性能改进。
,JIT需要多少次迭代才能“热身”(如果确实如此 - 我对JIT不是很熟悉)?
至少10,000。我会多次进行2-10秒的测试。
什么是深入理解JIT的最佳参考
我认为没有一个“最佳”参考。这是一个非常复杂的主题。