Estoy creando un ejecutor programado para leer el uso de memoria de la JVM. Me he encontrado dos formas de obtener estadísticas de memoria en una JVM corriendo - Tiempo de ejecución & MemoryMXBean, con la siguiente correspondencia entre sus métodos:Obtener estadísticas de memoria en Java: Runtime vs. MemoryMXBean
memoryMxBean.getHeapMemoryUsage().getUsed() <=> runtime.totalMemory() - runtime.freeMemory()
memoryMxBean.getHeapMemoryUsage().getCommitted() <=> runtime.totalMemory()
memoryMxBean.getHeapMemoryUsage().getMax() <=> runtime.maxMemory()
Con la excepción de la información de uso de memoria no montón adicional proporcionada por MemoryMXBean, ¿Hay alguna razón por la que debería preferirla a Runtime, o viceversa?
Sí. Ambas formas devuelven exactamente el mismo valor para la memoria utilizada. – huljas