有些时候为了测试程序的性能或者定位问题需要输出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("-----------------------------------------------------------");
这个没啥技术含量,网上一搜一大片,呵呵
本文介绍了一种简单的方法来监控Java程序的内存使用情况,包括堆内存和非堆内存的初始化大小、最大值及已使用值等关键信息。

675

被折叠的 条评论
为什么被折叠?



