CodeBlanks Logo Icon CodeBlanks

JMH

JMH ile benchmark ölçmeyi öğrenirsin.

JMH ile mikro kıyaslama

JMH (Java Microbenchmark Harness), küçük kod parçalarını doğru ölçmek için kullanılan çatıdır. Isıtma (warmup) turları ile JIT derlemesini tetikler, ölçüm turları ile sonucu toplar. Böylece yanlış ölçümlerden kaçınılır.

JMH, @Benchmark ile işaretlenmiş metotları ölçer. @State durum taşır, Blackhole ölü kod elenmesini önler. Doğru kıyaslama için ısınma ve yineleme sayıları açıkça verilir.

ısınma ve ölçüm turları

JMH iki aşama çalışır: önce ısınma turları koşar; bu sırada JIT sıcak metotları derler, sonuç sayılmaz. Sonra ölçüm turları koşar ve süreler toplanır. Isınma olmadan ölçüm, soğuk derlemeyi de içine alır ve yanlış çıkar.

@Warmup(iterations=3) ve @Measurement(iterations=5) ile tür sayıları ayarlanır. Sonuç istatistiksel olarak sunulur: ortalama, hata payı.

Uygulama BenchmarkRunner sınıfını yaz

class BenchmarkRunner tanımla; static int iterations = 5; ve static int warmup = 3; alanları, void measure() {} boş metodu olsun. main içinde System.out.println("warmup=" + warmup + " iters=" + iterations); yazdır.

Başlangıç kodu

Main.java
// BenchmarkRunner sınıfını tanımla: iterations ve warmup alanları, measure metodu

// main: warmup ve iterations değerlerini yazdır

Örnek çözüm

Main.java
class BenchmarkRunner {
    static int iterations = 5;
    static int warmup = 3;
    void measure() {}
    public static void main(String[] args) {
        System.out.println("warmup=" + warmup + " iters=" + iterations);
    }
}

Beklenen çıktı

warmup=3 iters=5

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 JMH ne için kullanılır?

  • Veri tabanı yönetimi
  • Grafik çizimi
  • Web sunucusu
  • Mikro kıyaslama Doğru cevap

Açıklama: JMH küçük kod parçalarını doğru biçimde ölçer.

2 benchmark ek açıklamasını tamamla

Soru
@____
public void measure() {}
Cevap
@Benchmark
public void measure() {}

Açıklama: @Benchmark ölçülecek metodu işaretler.

3 JMH kavramlarını eşleştir

Kavram Anlamı
@Benchmark Ölçüm metodu
@State Durum taşıyıcı
Blackhole Ölü kod önler
@Warmup Isınma türü

Uzman bölümündeki tüm dersler