Performans metrikleri ve ölçüm

Java'da Kod Optimizasyonu

Pavlos Kosmetatos

Lead Engineer @Wealthyhood

Zaman ölçümünün ötesinde

  • Önceki videolar
    • İşlemlerin süresini ölçme
    • JVM’de bellek yönetimi
  • Zaman ölçümünün ötesine geçme
  • Bellek metrikleri
  • CPU kullanım metrikleri
Java'da Kod Optimizasyonu

Runtime ile bellek metrikleri

// Get the Runtime instance
Runtime runtime = Runtime.getRuntime();


// Memory metrics in bytes long totalMemory = runtime.totalMemory(); // Memory currently allocated long freeMemory = runtime.freeMemory(); // Memory that is unused long maxMemory = runtime.maxMemory(); // Maximum memory JVM will attempt to use
  • Hepsi bayt cinsinden long döndürür
Java'da Kod Optimizasyonu

Bellek metriklerini anlama

  • maxMemory(): JVM’nin kullanmayı deneyeceği en yüksek bellek (-Xmx ile ayarlanır)
  • totalMemory(): JVM’ye şu an ayrılan bellek
  • freeMemory(): Kullanılmayan bellek
  • usedMemory(): totalMemory - freeMemory
  • JVM, gerekirse totalMemory’yi maxMemory’ye kadar artırabilir
Java'da Kod Optimizasyonu

Uygulamada bellek metrikleri

// Create a utility method for readable memory values
public static double getUsedMemoryMB() {
    Runtime runtime = Runtime.getRuntime();
    long memory = runtime.totalMemory() - runtime.freeMemory();
    return memory / (1024.0 * 1024.0);  // Convert to MB
}

// After allocation
System.out.println("Memory used: " + getUsedMemoryMB() + " MB");
Memory used: 5.23 MB
Java'da Kod Optimizasyonu

CPU kullanım ölçümü

import java.lang.management.*;

ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();

// Check if CPU time measurement is supported if (threadMXBean.isThreadCpuTimeSupported()) { // Enable CPU time measurement threadMXBean.setThreadCpuTimeEnabled(true); // Get CPU time in nanoseconds long cpuTimeNs = threadMXBean.getThreadCpuTime(Thread.currentThread().threadId()); }
Java'da Kod Optimizasyonu

Java profil oluşturma araçları

  • JVisualVM: Bellek, CPU ve daha fazlasını izlemek için görsel arayüz
  • jmap: Komut satırı bellek analiz aracı
  • Bu araçlar, bahsettiğimiz basit metriklerin ötesine geçer!
Java'da Kod Optimizasyonu

Hadi pratik yapalım!

Java'da Kod Optimizasyonu

Preparing Video For Download...