如何查询多少direct memory当前由 Java 分配(并且可能分配)?作为http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4879883的评价者提到,Java 在普通 Java 堆之外维护这些缓冲区。
最佳答案
可能还有其他方法可以使用 native 代码(或分析等)来执行此操作,但类似这样的方法可能适用于 Java:
Class c = java.nio.Bits.class;
Field maxMemory = c.getDeclaredField("maxMemory");
maxMemory.setAccessible(true);
Field reservedMemory = c.getDeclaredField("reservedMemory");
reservedMemory.setAccessible(true);
synchronized (c) {
Long maxMemoryValue = (Long)maxMemory.get(null);
Long reservedMemoryValue = (Long)reservedMemory.get(null);
}
关于java - 查看有多少直接缓冲内存可用于 Java?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3908520/