CodeBlanks Logo Icon CodeBlanks

JIT ayarı

JIT bayrakları ve tiered compilation ayarını öğrenirsin.

JIT derlemesi

JIT (Just-In-Time) derleyici, sık çağrılan sıcak metotları makine koduna çevirir. HotSpot iki derleyici kullanır: C1 hızlı derler (az en iyileme), C2 agresif en iyileme yapar. Kademeli derleme (-XX:+TieredCompilation) önce C1, sonra C2 kullanır.

Derleme eşiği -XX:CompileThreshold ile ayarlanır; bir metot bu kadar çağrılınca derlenir. -XX:+PrintCompilation nelerin derlendiğini gösterir.

JIT ayarlama

JIT ayarlaması genelde gerekmez; öntanımlı kademeli derleme çoğu iş yükünde iyidir. Yine de -XX:+PrintCompilation ile nelerin derlendiği, -XX:+UnlockDiagnosticVMOptions ile ayrıntılı bayraklar görülebilir.

Erken ayarlama kaçınılmalı; önce JFR ve JMH ile darboğaz bulunur. C2'nin agresif en iyilemesi bazen tuhaf hızlanmalar sağlar; bu yüzden mikro kıyaslama JMH ile yapılır.

Uygulama JitConfig sınıfını yaz

class JitConfig tanımla; static String describe(int threshold) metodu "CompileThreshold=" + threshold + " Tiered=true" döndürsün. main içinde System.out.println(describe(10000)); yazdır.

Başlangıç kodu

Main.java
// JitConfig sınıfını tanımla: describe metodu JIT ayar dizisi üretsin

// main: 10000 eşiği için ayarı yazdır

Örnek çözüm

Main.java
class JitConfig {
    static String describe(int threshold) {
        return "CompileThreshold=" + threshold + " Tiered=true";
    }
    public static void main(String[] args) {
        System.out.println(describe(10000));
    }
}

Beklenen çıktı

CompileThreshold=10000 Tiered=true

Soru ve cevaplar

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

1 kademeli derleme bayrağını tamamla

Soru
-XX:+____ -XX:CompileThreshold=10000
Cevap
-XX:+TieredCompilation -XX:CompileThreshold=10000

Açıklama: -XX:+TieredCompilation C1 ve C2'yi birlikte kullanır.

2 JIT kavramlarını eşleştir

Kavram Anlamı
C1 Hızlı derleyici
C2 En iyileyici derleyici
CompileThreshold Derleme eşiği
TieredCompilation Kademeli derleme

3 JIT ne yapar?

  • Kaynak kodu derler
  • Thread oluşturur
  • Çöp toplar
  • Sıcak metotları makine koduna çevirir Doğru cevap

Açıklama: JIT sık çağrılan metotları makine koduna derler.

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