Bellek kullanımını izleme
Büyük nesne koleksiyonlarını işleyen bir veri işleme uygulaması üzerinde çalışıyorsun. Kritik işlemler sırasında bellek tüketimini izleyerek OutOfMemoryError hatalarını önlemeye yardımcı olacak bir bellek izleme aracını uygula.
Bu egzersiz, kursun bir parçasıdır
Java'da Kod Optimizasyonu
Egzersiz talimatları
- Geçerli JVM çalışma zamanı örneğini al.
- Çalışma zamanının toplam bellek ve boş bellek değerlerini kullanarak o an kullanılan belleği hesapla.
- Kullanılan belleği megabayt cinsinden almak için yöntemi çağır.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
public class Main {
public static double getUsedMemoryMB() {
// Retrieve the JVM runtime instance
Runtime runtime = ____.____()
// Calculate the current used memory
long usedMemoryBytes = runtime.____() - runtime.____();
return usedMemoryBytes / (1024.0 * 1024.0);
}
public static void main(String[] args) {
double memoryBefore = getUsedMemoryMB();
System.out.println("Memory before array creation: " + memoryBefore + " MB");
int size = 10_000_000;
double[] largeArray = new double[size];
for (int i = 0; i < size; i++) {
largeArray[i] = Math.sqrt(i);
}
// Get the currently used memory in megabytes
double memoryAfter = ____();
System.out.println("Memory after array creation: " + memoryAfter + " MB");
System.out.println("Memory used by array creation: " + (memoryAfter - memoryBefore) + " MB");
}
}