【问题标题】:How to detect amount of Java 8 direct memory left?如何检测剩余的 Java 8 直接内存量?
【发布时间】:2015-12-26 04:32:29
【问题描述】:

在JDK8中,直接内存可以单独配置,如果直接内存用完了(比如使用ByteBuffer.allocateDirect()分配的),那么JDK会因为直接内存不足的错误导致你的应用崩溃。

有没有办法以编程方式检查应用程序中还剩下多少直接内存?

【问题讨论】:

    标签: java memory error-handling out-of-memory


    【解决方案1】:

    您可以使用 Runtime 访问有关分配给您的程序正在运行的 JVM 的内存的信息。

    Runtime runtime = Runtime.getRuntime();
    
    long max = runtime.maxMemory();
    long free = runtime.freeMemory();
    long total = runtime.totalMemory();
    

    【讨论】:

    • 这里只返回空闲堆内存的数量,与空闲直接内存的数量不同。
    猜你喜欢
    • 1970-01-01
    • 2010-11-11
    • 2021-09-23
    • 2016-03-20
    • 1970-01-01
    • 1970-01-01
    • 2019-04-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多