Получение статистики памяти в Java: Runtime vs. MemoryMXBean

Я создаю запланированный исполнитель для чтения использования памяти JVM. Я столкнулся с двумя способами получения статистики памяти в работающей JVM - Runtime & MemoryMXBean, со следующим соответствием между их методами:

memoryMxBean.getHeapMemoryUsage().getUsed()      <=> runtime.totalMemory() - runtime.freeMemory()
memoryMxBean.getHeapMemoryUsage().getCommitted() <=> runtime.totalMemory()
memoryMxBean.getHeapMemoryUsage().getMax()       <=> runtime.maxMemory()

За исключением дополнительной информации об использовании памяти без кучи, предоставляемой MemoryMXBean, есть ли какие-либо причины, по которым я должен предпочесть ее среде выполнения, или наоборот?

9
задан 9 May 2012 в 04:41
поделиться