对Java程序进行基准测试

对于大学,我执行字节码修改并分析它们对Java程序性能的影响。 因此,我需要Java程序—最好用于生产 – 以及适当的基准测试。 例如,我已经获得了HyperSQL并通过基准程序PolePosition测量其性能。 在没有JIT编译器的JVM上运行的Java程序。 谢谢你的帮助!

PS:我不能使用程序来测试JVM或Java语言本身(例如Wide Finder)的性能。

Brent Boyer为IBM开发人员的工作写了一篇很好的文章系列: 强大的Java基准测试 ,伴随着一个基于健全统计方法的微基准框架。 文章和资源页面 。

既然你是为大学做的那样,你可能会对Andy Georges,Dries Buytaert,Lieven Eeckhout感兴趣:在OOPSLA 2007中统计严格的Java性能评估 。

Caliper是Google提供的用于微基准测试的工具。 它将为您提供图表和一切。 把这个工具放在一起的人非常熟悉“过早优化是所有邪恶的根源”的原则(对于jwnting的观点)并且在解释基准测试的作用时非常谨慎。

任何有经验的程序员都会告诉你,过早优化比没有优化更糟糕。 这充其量是浪费资源,并且是最糟糕的未来(和当前)无限问题的根源。

没有上下文,任何应用程序,即使使用基准日志,都不会告诉您任何信息 我可能有一个循环,需要10个小时才能完成,基准测试将显示它几乎永远,但我不关心,因为它不是性能关键。 另一个循环只需要一毫秒但可能太长,因为它导致我无法捕获以100微秒间隔到达的传入数据包。

两个极端,但两者都可能发生(即使在相同的应用程序中),除非你知道应用程序,如何使用,它做什么,在哪些条件和要求下,你永远都不会知道。

如果用户界面需要1/2秒来渲染它可能太长或没有问题,那么上下文是什么? 用户的期望是什么?