ベンチマークを使用して Java 関数のパフォーマンスを評価するにはどうすればよいですか?

WBOY
リリース: 2024-04-19 22:18:02
オリジナル
896 人が閲覧しました

Java 関数のパフォーマンスをベンチマークする方法は、Java Microbenchmark Suite (JMH) を使用することです。具体的な手順は次のとおりです。 JMH 依存関係をプロジェクトに追加します。ベンチマーク メソッドを表す @State アノテーションを付けた新しい Java クラスを作成します。クラス内にベンチマーク メソッドを記述し、 @Benchmark アノテーションを付けます。 JMH コマンド ライン ツールを使用してベンチマークを実行します。

ベンチマークを使用して Java 関数のパフォーマンスを評価するにはどうすればよいですか?

ベンチマークを使用した Java 関数のパフォーマンスの評価

はじめに

ベンチマークとはコードのパフォーマンスを評価する重要な方法です。ベンチマークを実行すると、さまざまなコード実装の実行時間を比較して、情報に基づいた最適化の決定を行うことができます。この記事では、JMH (Java Microbenchmark Suite) を使用して Java 関数のベンチマークを行う方法について説明します。

JMH によるベンチマーク

JMH は、Java の人気のあるベンチマーク ライブラリです。ベンチマークを簡単に作成して実行するための注釈と API を提供します。

JMH をベンチマークに使用するには、次の手順を実行します。

  1. JMH 依存関係を追加します。 pom.xml ファイルに、次の依存関係を追加します。
<dependency>
  <groupId>org.openjdk.jmh</groupId>
  <artifactId>jmh-core</artifactId>
  <version>1.33</version>
</dependency>
ログイン後にコピー
  1. ベンチマーク クラスを作成します。 新しい Java クラスを作成し、クラスに @State の注釈を付けて、ベンチマーク メソッドが含まれていることを示します。例:
@State(Scope.Benchmark)
public class MyBenchmark {

  // 初始化测试数据
  @Setup
  public void setup() {
    // ...
  }

  // 基准测试方法
  @Benchmark
  public void myFunction() {
    // ...
  }
}
ログイン後にコピー
  1. ベンチマーク テストを実行します: JMH コマンド ライン ツールを使用してベンチマーク テストを実行します:
jmh MyBenchmark
ログイン後にコピー

実践的なケース

整数のリストを追加する Java 関数 myFunction を考えてみましょう。この関数のベンチマークを行うベンチマーク クラスは次のとおりです。

import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.State;
import org.openjdk.jmh.annotations.Scope;

import java.util.List;
import java.util.stream.IntStream;

@State(Scope.Benchmark)
public class MyBenchmark {

  // 测试数据
  private List<Integer> numbers;

  @Setup
  public void setup() {
    numbers = IntStream.rangeClosed(0, 1000000).boxed().toList();
  }

  @Benchmark
  public int myFunction() {
    int sum = 0;
    for (int number : numbers) {
      sum += number;
    }
    return sum;
  }
}
ログイン後にコピー

ベンチマークを実行すると、平均実行時間、標準偏差、スループットなどのパフォーマンス メトリクスが得られます。これらのメトリクスは、コードのパフォーマンスを分析し、改善すべき領域を特定するのに役立ちます。

以上がベンチマークを使用して Java 関数のパフォーマンスを評価するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!