一、使用ByteBuffer.allocateDirect分配的off heap内存大小
本机进程
在Jvisualvm中安装 Mbeans插件,然后查看java.nio/BufferPool/direct
进程内使用代码获取
MBeanServer mbs = ManagementFactory. getPlatformMBeanServer() ;
ObjectName objectName = new ObjectName("java.nio:type=BufferPool,name=direct" ) ;
MBeanInfo info = mbs.getMBeanInfo(objectName) ;
for(MBeanAttributeInfo i : info.getAttributes()) {
System.out .println(i.getName() + ":" + mbs.getAttribute(objectName , i.getName()));
}
远程进程
- JMX获取
如果目标机器没有启动JMX,那么添加jvm参数:<