【发布时间】:2020-01-16 09:34:57
【问题描述】:
似乎当有等待外部服务的 IO 操作时,很多线程正在 sun.misc.Unsafe.park 处等待。 这导致无法清除的本机内存堆积。 这个本机内存是如何被清除的。一段时间后会自动清除吗
【问题讨论】:
-
Unsafe.park不会增加本机内存占用。请澄清您的意思,最好使用代码示例和诊断工具的输出。 -
Direct ByteBuffers 注册一个Cleaner 对象,该对象在 ByteBuffer 变得无法访问时释放相关的本机内存。
-
有这个:stackoverflow.com/questions/30458195/… 虽然那是几年前的事了(Java 8 时间框架),但 IIRC 更高版本的 Java 有一些改进
标签: java memory-management jvm heap-memory native