秒表基准测试是否可接受?

79

有人使用秒表基准测试吗?或者说性能工具总是应该被使用?是否有适用于Java的好的免费工具?你使用哪些工具呢?

为了澄清我的疑虑,秒表基准测试存在由于操作系统调度而产生的误差。在程序运行的某次中,操作系统可能会在你计时的函数执行期间调度另一个进程(或多个进程)。如果你尝试对线程化的Java应用程序进行计时,情况甚至会更加糟糕,因为JVM调度器会将一点不确定性添加到混合中。

在基准测试过程中,如何解决操作系统调度问题?


我建议使用Java微基准测试工具(JMH)来避免JVM的测量误差。在以下页面上了解有关JMH的更多信息:https://www.oracle.com/technical-resources/articles/java/architect-benchmarking.html 和 https://www.baeldung.com/java-microbenchmark-harness - StackOverflow
13个回答

0

我总是使用秒表基准测试,因为它更容易。对于我来说,结果不需要非常精确。如果您需要精确的结果,则不应使用秒表基准测试。


0

我认为秒表基准测试并不太可怕,但如果你能够使用Solaris或OS X机器,你应该尝试一下DTrace。我曾经使用它来获取关于我的应用程序时间的很好的信息。


0

我经常这样做。虽然我更喜欢使用性能分析器,但是我所使用的领域特定语言的供应商却没有提供。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接