Salut
je suis entrain d'étudier la mémoire utilisé par la JVM
j'ai trouvé plusieurs moyens pour extraire les différents grandeurs utilisés(classe Runtime et MemoryMXBean) .Mais ça m'a posé un petit conflit entre l'utilités de ces deux classes.
Avec la classe Runtime , je peut extraire les différentes valeurs:
- Runtime.getRuntime().freeMemory()
- Runtime.getRuntime().totalMemory()
- Runtime.getRuntime().maxMemory()
Avec la classe MemoryMXBean, on peut extraire:
- memoryMXBean.getHeapMemoryUsage().getMax()
- memoryMXBean.getHeapMemoryUsage().getUsed()
- memoryMXBean.getHeapMemoryUsage().getInit()
- memoryMXBean.getHeapMemoryUsage().getCommitted()
Qu'elle est la relation entre ces valeurs?
ce que j'ai compris est que :
- Runtime.getRuntime().maxMemory() = memoryMXBean.getHeapMemoryUsage().getMax()
- Runtime.getRuntime().totalMemory() = memoryMXBean.getHeapMemoryUsage().getInit()
- Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory() = memoryMXBean.getHeapMemoryUsage().getUsed()
est ce que ces relation sont exactes ?
Quand utiliser la classe Runtime et quand utiliser la classe MemoryMXBean
Partager