Rumah > Java > javaTutorial > teks badan

Bagaimana untuk menggunakan penanda aras untuk menilai prestasi fungsi Java?

WBOY
Lepaskan: 2024-04-19 22:18:02
asal
895 orang telah melayarinya

Satu cara untuk menanda aras prestasi fungsi Java ialah menggunakan Java Microbenchmark Suite (JMH). Langkah khusus termasuk: Menambah kebergantungan JMH pada projek. Buat kelas Java baharu beranotasi dengan @State untuk mewakili kaedah penanda aras. Tulis kaedah penanda aras dalam kelas dan anotasikannya dengan @Benchmark. Jalankan penanda aras menggunakan alat baris arahan JMH.

Bagaimana untuk menggunakan penanda aras untuk menilai prestasi fungsi Java?

Menggunakan penanda aras untuk menilai prestasi fungsi Java

Pengenalan

Tanda aras ialah cara penting untuk menilai prestasi kod anda. Dengan menjalankan penanda aras, anda boleh membandingkan masa pelaksanaan pelaksanaan kod yang berbeza untuk membuat keputusan pengoptimuman termaklum. Artikel ini menerangkan cara untuk menanda aras fungsi Java menggunakan JMH (Java Microbenchmark Suite).

Penanda aras dengan JMH

JMH ialah perpustakaan penanda aras yang popular untuk Java. Ia menyediakan anotasi dan API untuk menulis dan menjalankan penanda aras dengan mudah.

Untuk menggunakan JMH untuk penandaarasan, ikuti langkah berikut:

  1. Tambah kebergantungan JMH: Dalam pom kelas Java baharu dan anotasi kelas dengan @State untuk menunjukkan bahawa ia mengandungi penanda aras. kaedah. Contohnya:
<dependency>
  <groupId>org.openjdk.jmh</groupId>
  <artifactId>jmh-core</artifactId>
  <version>1.33</version>
</dependency>
Salin selepas log masuk
    1. Jalankan penanda aras: Gunakan alat baris arahan JMH untuk menjalankan penanda aras: @State 注释该类以表示它包含基准测试方法。例如:
    @State(Scope.Benchmark)
    public class MyBenchmark {
    
      // 初始化测试数据
      @Setup
      public void setup() {
        // ...
      }
    
      // 基准测试方法
      @Benchmark
      public void myFunction() {
        // ...
      }
    }
    Salin selepas log masuk
    1. 运行基准测试:使用 JMH 命令行工具运行基准测试:
    jmh MyBenchmark
    Salin selepas log masuk

    实战案例

    考虑一个 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;
      }
    }
    Salin selepas log masuk

    Kes praktikal

    🎜🎜Consider a JavaFungsikod saya , yang menambah senarai integer. Berikut ialah kelas penanda aras untuk menanda aras fungsi ini: 🎜rrreee🎜Selepas menjalankan penanda aras, anda akan mendapat metrik prestasi seperti purata masa pelaksanaan, sisihan piawai dan daya pemprosesan. Metrik ini boleh membantu anda menganalisis prestasi kod anda dan mengenal pasti bidang untuk penambahbaikan. 🎜

    Atas ialah kandungan terperinci Bagaimana untuk menggunakan penanda aras untuk menilai prestasi fungsi Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!