ホームページ  >  記事  >  テクノロジー周辺機器  >  JMH を使用して Java プログラムのパフォーマンスを向上させる

JMH を使用して Java プログラムのパフォーマンスを向上させる

WBOY
WBOY転載
2023-05-18 15:05:17929ブラウズ

1 はじめに

Java 開発者は、アプリケーションのパフォーマンスを向上させるという課題に直面することがよくあります。 Java Microbenchmark Harness (JMH) は、ボトルネックを特定し、コードを最適化してパフォーマンスを向上させるのに役立つ強力なツールです。この記事では、JMH を紹介し、JMH を使用して Java アプリケーションのパフォーマンスを向上させるベンチマークを作成および実行する方法を示します。

2 JMHとは何ですか?

JMH は、Java コードのパフォーマンスを測定するために設計されたオープンソースのベンチマーク フレームワークです。 OpenJDK チームによって開発された JMH は、メソッド、クラス、アルゴリズムなど、アプリケーションのさまざまな側面のパフォーマンスを測定するためのシンプルかつ正確な方法を提供します。

3 JMH のセットアップ

JMH の使用を開始するには、Maven または Gradle プロジェクトに次の依存関係を追加する必要があります。

Maven の場合、これを pom に追加します。 xml:

<code><dependency><groupId>org.openjdk.jmh</groupId><artifactId>jmh-core</artifactId><version>1.33</version></dependency><dependency><groupId>org.openjdk.jmh</groupId><artifactId>jmh-generator-annprocess</artifactId><version>1.33</version></dependency></code>

Gradle の場合、build.gradle に以下を追加します:

<code>implementation 'org.openjdk.jmh:jmh-core:1.33'annotationProcessor 'org.openjdk.jmh:jmh-generator-annprocess:1.33'</code>

4 単純なベースラインを作成します

パフォーマンスを測定するための単純なベンチマークを作成します。数値階乗の再帰計算を使用するメソッド:

<code>import org.openjdk.jmh.annotations.*;@State(Scope.Benchmark)public class FactorialBenchmark {@Param({"10", "20", "30"})public int number;@Benchmarkpublic long factorial() {return calculateFactorial(number);}private long calculateFactorial(int n) {if (n == 0) {return 1;}return n * calculateFactorial(n - 1);}}</code>

この例では:

1. @State(Scope.Benchmark) を使用してこのクラスのベンチマークを実行する で必要なアノテーションを理解するJMHベンチマーク。 @Param アノテーションが付けられた数値フィールドを使用してベンチマークを複数回実行し、さまざまな入力値をテストします。 @Benchmark アノテーションは階乗法に使用され、メソッドがベンチマークとしてテストされる必要があることを示します。

5 ベンチマークの実行

ベンチマークを実行するには、main メソッドを含む新しいクラスを作成し、JMH ランナーを使用します。

<code>import org.openjdk.jmh.runner.Runner;import org.openjdk.jmh.runner.options.Options;public class BenchmarkRunner {public static void main(String[] args) throws Exception {Options options = new OptionsBuilder().include(FactorialBenchmark.class.getSimpleName()).forks(1).build();new Runner(options).run();}}</code>

これにより、ベンチマークが実行されます。読み取り可能な形式の出力結果。これにより、さまざまな入力値のパフォーマンスを比較できます。

6 結果の分析

JMH は、平均時間、標準偏差、パーセンタイル値などの包括的な結果を提供します。これらのメトリクスを使用して、潜在的なボトルネックや最適化が必要なコード領域を特定します。

7 概要

Java Microbenchmark Harness (JMH) は、Java アプリケーションのパフォーマンスの向上に役立つ強力なツールです。ベンチマークを作成して実行すると、重要なパフォーマンス コードを特定して改善し、アプリケーションが効率的に実行されるようにすることができます。 JMH の柔軟性と使いやすさにより、JMH は Java 開発者にとって不可欠なツールの 1 つとなっています。 JMH を開発ワークフローに統合し始めて、Java アプリケーションの可能性を最大限に活用してください。

以上がJMH を使用して Java プログラムのパフォーマンスを向上させるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。