ComenzarEmpieza gratis

Seguimiento del uso de memoria

Estás trabajando en una aplicación de procesamiento de datos que manipula colecciones grandes de objetos. Implementa una utilidad de monitorización de memoria que ayude a seguir el consumo de memoria durante operaciones críticas para evitar excepciones OutOfMemoryError.

Este ejercicio forma parte del curso

Optimizing Code in Java

Ver curso

Instrucciones del ejercicio

  • Obtén la instancia actual del runtime de la JVM.
  • Usando la memoria total y la memoria libre del runtime, calcula la memoria utilizada actualmente.
  • Llama al método para obtener la memoria utilizada en megabytes.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

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");
    }
}
Editar y ejecutar código