如何衡量Java的性能

时间:2014-04-11 21:33:54

标签: java

如何衡量Java中应用程序中方法/时间段的性能?是否有专门为此功能而制作的课程?

4 个答案:

答案 0 :(得分:1)

有两种方法:

  • 在设计时进行测试。这意味着,您将在设计应用程序时执行测试。您可能想要创建一些方法并使用System.nanoTime()(或者在最坏的情况下,System.currentTimeMillis())天真地测量它们,这是一种天真的方法,因为您错过了许多概念处理微观基准。不过,如果您想手动对方法进行基准测试,至少请遵循proper rules for a micro benchmark。 IMO你不应该重新发明轮子,而是使用基准框架,如JUnitBenchmarksCaliper,你可以使用单元测试来衡量算法/方法的时间。

  • 在运行时进行测试。这意味着,您将在应用程序运行时测量性能,通常是在类似于生产环境的专用环境中。对于此方案,请使用profiler。 Java应用程序有很多分析器,从VisualVMJava Mission Control等免费许可证(这来自JDK 7 u40),它们在JDK发行版中提供给Yourkit等商业产品。 / p>

答案 1 :(得分:0)

您可以使用System.currentTimeMillis()或System.nanoTime()来获取执行要测量的代码之前和之后的时间。

更软化的方法是使用JMeter或类似的应用程序来生成许多执行的统计信息。

更加软化的方法是使用Perf4j

答案 2 :(得分:0)

在Java8中,有一个新工具,请查看http://openjdk.java.net/projects/code-tools/jmh/

  

JMH是一个Java工具,用于构建,运行和分析用Java和其他针对JVM的语言编写的nano / micro / milli / macro基准测试。

答案 3 :(得分:0)

我正在使用这个http://metrics.codahale.com/并且它摇滚。它包装在DropWizard中,很不错。还要拿起一个分析器 - > yourKit或JMC(免费的Java Mission Control)。

关键是在分析时要轻量级。你不想在等式中增加太多的偏见。

相关问题