CodeBlanks Logo Icon CodeBlanks

JIT derleyici

JIT derleyici ve optimizasyonu öğrenirsin.

JIT derleyici

JIT (Just-In-Time) derleyici, sık çalışan bayt kodunu makine koduna çevirir. JVM önce bayt kodunu yorumlayarak çalıştırır; bir metot yeterince sık çağrılınca JIT onu derler ve sonraki çağrılar daha hızlı olur.

Java 21'de ana JIT, HotSpot C2'dir. JIT, önbellek (code cache) adlı bir bellek bölgesinde derlenmiş makine kodunu tutar. Bu, yorumlamaya göre büyük bir hız artışı sağlar.

JIT'in 'sıcak' (hot) kod tespiti çağrı sayisina dayanır; eşik değeri asan metotlar derlenir. Bu yuzden JVM 'ısınma' (warmup) süresi gerektirir.

Yorumlama ve derleme

JVM iki modda çalışır: yorumlama (interpretation) ve derleme (compilation). Yorumlama bayt kodunu satır satır çalıştırır; hızlı başlar ama yavaştır. Derleme ise sıcak metotları makine koduna çevirir; ilk maliyeti yüksektir ama sonraki çağrılar hızlıdır.

JVM bu ikisini tiered compilation ile birleştirir: önce hızlı başlamak için yorumlama, sonra hizlanmak için derleme. Bu, hem düşük ısınma süresi hem de yüksek tepe hız verir.

Uygulama Sıcak döngüyü çalıştır

Bir Main sınıfı tanımla. int sum(int n) metodu ekle; 1'den n'e kadar olan tamsayıları toplasın (for döngüsü ile). main yönteminde sum(100) çağrısını yap ve sonucu System.out.println ile yazdır.

Başlangıç kodu

Main.java
public class Main {
    // 1'den n'e kadar toplayan metot tanımla

    public static void main(String[] args) {
        // metodu 100 ile çağır ve yazdır
    }
}

Örnek çözüm

Main.java
public class Main {
    int sum(int n) {
        int total = 0;
        for (int i = 1; i <= n; i++) {
            total += i;
        }
        return total;
    }
    public static void main(String[] args) {
        Main m = new Main();
        System.out.println(m.sum(100));
    }
}

Beklenen çıktı

5050

Soru ve cevaplar

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

1 JIT ne zaman devreye girer?

  • Bir metot yeterince sıcak olduğunda Doğru cevap
  • Sınıf yüklenir yüklenmez
  • Derleme anında
  • Program kapatılırken

Açıklama: JIT sıcak metotları derler; çağrı sayısı eşiği aşılınca devreye girer.

2 JIT kavramlarını eşleştir

Kavram Anlamı
JIT Sıcak kodu makine koduna çevirir
Code cache Derlenmiş kodu tutar
Warmup Isınma süresi
Tiered Yorumlama ve derlemeyi birleştirir

3 Code cache tanımını tamamla

Soru
// JIT derlenmiş makine kodunu _code cache_ bölgesinde tutar
String cacheName = "____";
Cevap
// JIT derlenmiş makine kodunu _code cache_ bölgesinde tutar
String cacheName = "code cache";

Açıklama: Derlenmiş kod code cache'te tutulur.

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