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