ПочатиПочніть безкоштовно

Відстеження використання памʼяті

Ви працюєте над застосунком для обробки даних, який маніпулює великими колекціями обʼєктів. Реалізуйте утиліту моніторингу памʼяті, що допоможе відстежувати споживання памʼяті під час критичних операцій, щоб запобігти виняткам OutOfMemoryError.

Ця вправа є частиною курсу

Оптимізація коду в Java

Переглянути курс

Інструкції до вправи

  • Отримайте поточний екземпляр середовища виконання JVM.
  • Використовуючи загальний і вільний обсяг памʼяті середовища виконання, обчисліть наразі використану памʼять.
  • Викличте метод, щоб отримати значення використаної памʼяті у мегабайтах.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

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");
    }
}
Редагувати та запускати код