Çöp toplama ve Anında (JIT) derleme

Java'da Kod Optimizasyonu

Pavlos Kosmetatos

Lead Engineer @Wealthyhood

Çöp toplama - temeller

Elle Bellek Yönetimi (C/C++)

  • Programcı belleği açıkça ayırır ve serbest bırakır
  • Sızıntıya yatkındır

$$

Java'nın Çöp Toplaması

  • Otomatik bellek ayırma
  • Kullanılmayan nesnelerin otomatik tespiti
  • Belleğin otomatik geri kazanımı
Java'da Kod Optimizasyonu

Çöp toplama nasıl çalışır

  • İşaretleme: Köklerden erişilebilir nesneleri belirle
  • Süpürme: Erişilemeyen nesneleri kaldır

Ekran görüntüsü 2025-05-11 18:58:38.png

Java'da Kod Optimizasyonu

Çöp toplama ve performans

GC Performans Dengeleri

  • Geliştirmeyi basitleştirir, ancak performans etkileri vardır

$$

GC Algoritmaları

  • Modern JVM'ler birden çok çöp toplama algoritması sunar
  • Seçim uygulama gereksinimlerine bağlıdır
  • GC algoritmalarına derin bakış burada bulunabilir
1 https://www.baeldung.com/jvm-garbage-collectors
Java'da Kod Optimizasyonu

GC performans etkisi

// Kötü - Çok sayıda kısa ömürlü nesne oluşturma
for (int i = 0; i < 1000000; i++) {
    new Object(); // Hemen çöp olur
}


// vs. Nesneleri yeniden kullanma Object obj; for (int i = 0; i < 1000000; i++) { obj = new Object(); // Yalnızca bir başvuru }
Java'da Kod Optimizasyonu

GC dostu kodlama

// Performans kritik kodda kaçının
String result = "";
for (int i = 0; i < 100000; i++) {
    result += i; // Her seferinde yeni String oluşturur
}


// Daha iyi yaklaşım StringBuilder builder = new StringBuilder(); for (int i = 0; i < 100000; i++) { builder.append(i); // Aynı tamponu yeniden kullanır } String result = builder.toString();
Java'da Kod Optimizasyonu

Anında derleme (JIT)

  • JVM yürütme süreci:
    • Java kaynak -> Bayt kodu
    • Bayt kodu -> Yorumlanmış yürütme
    • Sıcak metotlar -> Yerel makine kodu
  • Sık çalıştırılan kodu optimize eder
Java'da Kod Optimizasyonu

JIT dostu kod kalıpları

  • Öngörülebilir kod yazın
// Öngörülebilir dallar JIT optimizasyonuna yardımcı olur
if (value > 0) {
    // Kod A - sık kullanılan yol
} else {
    // Kod B - nadiren kullanılan yol
}
  • Odaklı, küçük metotlar oluşturun
  • Küçük, sık çağrılan metotlar satır içi yerleştirme için idealdir
  • Karmaşık kod daha az etkili optimize edilebilir
Java'da Kod Optimizasyonu

Özet

  • Performans kritik yollarda nesne oluşturmayı en aza indirin
  • JIT yetenekleriyle uyumlu, öngörülebilir kod yazın
  • Önce profil çıkarın; önemli koda odaklanın
Java'da Kod Optimizasyonu

Haydi pratik yapalım!

Java'da Kod Optimizasyonu

Preparing Video For Download...