java - 查看有多少直接缓冲内存可用于 Java?

标签 java nio

如何查询多少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/

相关文章:

java - OIO在Java中是什么意思?

java - 在 eclipse 中运行 servlet 导致服务器启动失败

java - 如何允许匿名上传到云存储

java - 为什么 Java 泛型不允许对泛型类型进行类型转换?

java - 如何分发 Java 应用程序

java - 运行 Junit 时的 Hibernate ConstraintValidation

java - 搭建netty开发环境

java - Android:Selector.select() 立即返回 0

java - 突然出现此错误 java.lang.IllegalStateException : Request cannot be executed; I/O reactor status: STOPPED

java - ByteBuffer - CompareTo 方法可能会出现分歧