javajitgotchas

javajitgotchas,java,jit,Java,Jit,如果我想比较一个算法的两个实现的速度,我应该知道JIT有什么问题吗?例如,JIT“预热”需要多少次迭代(如果需要,我对JIT不是很熟悉)?我想到了一个类似于合并的算法,我想使用迭代器和直接使用原始基元数组进行比较。我想了解JIT如何处理基于迭代器的算法 我担心我的比较没有意义,因为我没有让基准运行足够长的时间,JIT也没有机会真正完成它的工作 另外,深入理解JIT的最佳参考是什么(除了阅读源代码之外) 还有一个问题:服务器是告诉JIT努力工作的最佳选择吗 关于JIT有什么我应该知道的吗 太多

如果我想比较一个算法的两个实现的速度,我应该知道JIT有什么问题吗?例如,JIT“预热”需要多少次迭代(如果需要,我对JIT不是很熟悉)?我想到了一个类似于合并的算法,我想使用迭代器和直接使用原始基元数组进行比较。我想了解JIT如何处理基于迭代器的算法

我担心我的比较没有意义,因为我没有让基准运行足够长的时间,JIT也没有机会真正完成它的工作

另外,深入理解JIT的最佳参考是什么(除了阅读源代码之外)

  • 还有一个问题:服务器是告诉JIT努力工作的最佳选择吗
关于JIT有什么我应该知道的吗

太多了,不值一提

别忘了CPU和缓存本身进行了优化和性能改进

,JIT需要多少次迭代才能“预热”(如果需要,我对JIT不是很熟悉)

至少一万。我将执行测试2-10秒,多次

深入理解JIT的最佳参考是什么


我不认为有一个“最佳”参考。这是一个非常复杂的问题。

与所有彻底的基准测试一样,在进行任何统计之前,通常会执行一次或多次“干运行”。这可以完成诸如填充指令缓存、执行JIT编译、有条件地初始化任何静态数据等操作。好的-我计划在2个稀疏向量上多次运行类似于合并的算法-我猜前几次迭代将允许JIT理解该做什么。但多少次迭代就足够了?我应该至少运行1000次循环吗?更多较少的JIT对相关优化的锁定速度有多快?如果可以,请使用预构建的基准库;不要试图自己理解JIT。(我使用。)目前写的问题给我的印象是宽泛而模糊。如果你运行了你的基准测试,发布了你的结果,并询问了关于你怀疑的任何具体问题的反馈,这可能会有所帮助。虽然我也可以发布一个具体的例子进行回顾。