通过 JUnit 测试 Java 方法的执行时间和内存消耗

Pas*_*ord 5 java junit

我想根据方法的参数来分析方法的执行时间和内存消耗是如何变化的。到目前为止,我已经想出了通过 JUnit 测试该方法并对不同的参数集运行多个测试(例如,使用JUnit Theories)。为了从由于设置测试等引起的开销中抽象出来,时间是通过System.currentTimeMillis我感兴趣的步骤之前和之后的差异来计算的。这似乎有点hacky,有没有更自然的方法来做到这一点?

我还想看看内存消耗在不同参数下的表现。我想到了 JVisualVM,但是有没有更优雅的方法来自动获得我想要的东西?

dds*_*dds 4

我建议您使用JMH java 基准测试框架。

JMH 是一个 Java 工具,用于构建、运行和分析用 Java 和其他针对 JVM 的语言编写的纳/微米/毫/宏观基准测试。

  • 内存使用情况也可以涵盖,请参阅http://stackoverflow.com/questions/22640804/count-metrics-with-jmh (2认同)