一、获取堆外内存
@GetMapping("/panama") public Map<String, Object> panama() { ByteBuffer buffer = ByteBuffer.allocateDirect(1 * 1024 * 1024); Map<String, Object> map = new HashMap<>(); try { MBeanServer mbs = ManagementFactory. getPlatformMBeanServer() ; ObjectName objectName = new ObjectName("java.nio:type=BufferPool,name=direct" ) ; MBeanInfo info = mbs.getMBeanInfo(objectName) ; for(MBeanAttributeInfo i : info.getAttributes()) { map.put(i.getName(), mbs.getAttribute(objectName , i.getName())); } } catch (Exception e) { map.put("error", e); } return map; }
输入后果
Name:directCount:1TotalCapacity:1048576MemoryUsed:1048576ObjectName:java.nio:type=BufferPool,name=direct