我想知道网上是否有一些资源可以通过速度比较不同版本的Sun Java VM。
像the PyPy speed timeline这样的东西会是最佳的,因为我对实际取得的进展感兴趣。
有谁知道这样的项目?
答案 0 :(得分:2)
我不知道有任何这样的项目。但是,你可以自己做:
但请注意,一般基准测试因不能预测实际应用程序的执行情况而臭名昭着。由于诸如类加载,JIT编译和堆大小调整和调优之类的事情,Java基准测试具有独特的问题。
Igouy评论:“基准测试因为不一定能预测真实应用程序的执行情况而臭名昭着。而且真正的应用程序并不一定能预测其他实际应用程序的表现。有人告诉我fasta,k-核苷酸,反向补充和正则表达式dna确实是他们在工作中写的 - 对于他们来说,那些小程序是“真正的应用程序”。“
我不是说基准测试从不是预测性的。当有人采用典型的基准测试或一组基准测试,然后使用它/它们来预测特定应用程序(或更糟糕的是“所有应用程序”)将如何执行时,就会出现问题。通过这种方法,基准测试是否能够做出准确的预测是一件幸运的事。这基本上就是OP正在做的事情。
更好的方法可能是选择与应用程序相匹配的基准(或写一个)。但即使采用这种方法,预测性依赖于正确匹配基准测试的关键性能相关属性和实际应用程序。而且,最重要的是,在您实施应用程序之后,无法确定您是否已正确完成此操作...到时候使用预测为时已晚。
因此,即使您的基准测试结果已经做出准确的预测,您也无法客观地确定先验预测是否可能准确。
显然,如果“基准”本质上是真正的应用程序,您可能可以依赖预测。但显然,这不是OP试图做的事情。此外,如果不考虑预测,仍然存在问题(如问题规模缩放)可能会使预测混淆。