НачатьНачать бесплатно

Отслеживание использования памяти

Вы работаете над приложением для обработки данных, которое оперирует большими коллекциями объектов. Реализуйте утилиту мониторинга памяти, которая поможет отслеживать её потребление во время критически важных операций и предотвращать исключения 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");
    }
}
Редактировать и запускать код