有些时候为了测试程序的性能或者定位问题需要输出java程序本身使用的内存,下面这种方式既可以直接通过java提供的API拿到内测信息
log.info("-----------------------------------------------------------");
MemoryMXBean memoryMXBean = ManagementFactory.getMemoryMXBean();
log.info("dump max " + change(memoryMXBean.getHeapMemoryUsage().getMax()));
log.info("dump l " + change(memoryMXBean.getHeapMemoryUsage().getInit()));
log.info("dump used " + memoryMXBean.getHeapMemoryUsage().getUsed());
log.info("getHeapMemoryUsage " + memoryMXBean.getHeapMemoryUsage());
log.info("getHeapMemoryUsage " + memoryMXBean.getHeapMemoryUsage().hashCode());
log.info("=================");
log.info("no dump max" + change(memoryMXBean.getNonHeapMemoryUsage().getMax()));
log.info("no dump l " + change(memoryMXBean.getNonHeapMemoryUsage().getInit()));
log.info("getNonHeapMemoryUsage " + memoryMXBean.getNonHeapMemoryUsage());
log.info("getNonHeapMemoryUsage " + memoryMXBean.getNonHeapMemoryUsage().hashCode());
log.info("-----------------------------------------------------------");
这个没啥技术含量,网上一搜一大片,呵呵