2

通常、パフォーマンスをテストしたいときは、コードを実行する前と実行した後に System.nanoTime() 関数を使用してから、減算を行っています。最近、私は人々が使用していることに気づきました

@OutputTimeUnit(TimeUnit.NANOSECONDS)
@BenchmarkMode(Mode.AverageTime)

openjdkのJMHの一部です。

Oracle jdkを使用しています。System.nanoTime を記述する代わりに、同様のツールがあるか、またはナノ/マイクロ/ミリ/マクロ ベンチマークを構築、実行、および分析する別の方法があるかどうか疑問に思います。

4

2 に答える 2

4

JMHのウェブサイトから:

JMH は、Java および JVM をターゲットとする他の言語で記述されたナノ/マイクロ/ミリ/マクロ ベンチマークを構築、実行、および分析するための Java ハーネスです。

したがって、JMH は、OpenJDK がインストールされているか、Oracle の JDK がインストールされているかに関係なく動作するはずです。OpenJDK と Oracle の JDK はどちらも JVM を対象とする言語の実装であるため、問題はありません。

注記として、JMH がOpenJDK の一部として維持されているからといって、それが OpenJDK専用であることを意味するわけではありません。

于 2014-06-04T15:25:17.743 に答える
2

パフォーマンス テストに JMH を使用し、以下のように maven に依存関係を含めます。

<dependency>
    <groupId>org.openjdk.jmh</groupId>
    <artifactId>jmh-core</artifactId>
    <version>1.11.2</version>
</dependency>

例はhttp://psy-lob-saw.blogspot.in/2013/05/using-jmh-to-benchmark-multi-threaded.htmlにあります。

于 2015-12-13T07:20:16.860 に答える