Java性能历史

Axe*_*ing 14 java performance benchmarking

我想知道Web上是否有一些资源可以通过速度比较不同版本的Sun Java VM.

PyPy速度时间轴这样东西是最佳的,因为我对随着时间的推移实际取得了多少进展感兴趣.

有谁知道这样的项目?

Ste*_*n C 2

我不知道有这样的项目。但是,您可以自己执行此操作:

  • 旧版本的 Java(回到 1.1)仍然可以从此页面下载。
  • Benchmark Game ”站点提供了 10 个您可以使用的基准测试的 Java 实现。

但请注意,通用基准测试因无法预测实际应用程序的性能而臭名昭著。由于类加载、JIT 编译以及堆大小调整和调整等问题,Java 基准测试具有独特的问题。


Igouy 评论道: “基准因不一定能预测真实应用程序的执行情况而臭名昭著。此外,真实应用程序也不一定能预测其他真实应用程序的执行情况。有人确实告诉我 fasta、k 核苷酸、反向补体和 regex-dna确实是他们在工作中编写的内容 - 对他们来说,这些小程序是“真正的应用程序”。”

我并不是说基准永远不能预测。当有人采用典型的基准或一组基准,然后使用它/它们来预测特定应用程序(或更糟糕的是“所有应用程序”)将如何执行时,就会出现问题。采用这种方法,基准测试是否做出准确的预测就取决于运气了。这本质上就是OP正在做的事情。

更好的方法可能是选择一个与应用程序的功能相匹配的基准(或编写一个基准)。但即使采用这种方法,预测性也取决于基准测试和实际应用程序的关键性能相关属性的正确匹配。而且,最重要的是,在您实现应用程序之前,无法知道您是否正确执行了此操作……到那时使用预测就为时已晚。

因此,即使您的基准测试结果做出了准确的预测,您也无法客观地先验地确定预测是否可能准确。

显然,如果“基准”本质上是真实的应用程序,那么您可能可以依赖预测。但显然,这并不是 OP 想要做的。此外,如果您不考虑这些问题,仍然存在一些问题(例如问题规模缩放),这些问题可能会混淆预测。