Я создаю запланированный исполнитель для чтения использования памяти JVM. Я столкнулся с двумя способами получения статистики памяти в работающей JVM - Runtime & MemoryMXBean, со следующим соответствием между их методами:
memoryMxBean.getHeapMemoryUsage().getUsed() <=> runtime.totalMemory() - runtime.freeMemory()
memoryMxBean.getHeapMemoryUsage().getCommitted() <=> runtime.totalMemory()
memoryMxBean.getHeapMemoryUsage().getMax() <=> runtime.maxMemory()
За исключением дополнительной информации об использовании памяти без кучи, предоставляемой MemoryMXBean, есть ли какие-либо причины, по которым я должен предпочесть ее среде выполнения, или наоборот?