小编典典

有没有一种方法可以测量Java中的直接内存使用情况?

java

如果通过创建缓冲区ByteBuffer.allocateDirect(),则该内存将位于Java堆之外。有没有一种方法可以以跨平台的方式测量应用程序中此类内存的使用情况,类似于我可以使用Runtime.totalMemory()and
来测量Java堆使用情况的方法Runtime.freeMemory()


阅读 212

收藏
2020-11-13

共1个答案

小编典典

您可以使用反射来获取Bits.reservedMemoryJava 7的OpenJDK /
HotSpot。没有独立于平台的方式,它仅通过ByteBuffer.allocateDirect()向您显示用法,而没有其他分配本地内存的方式。

另一种方法是解析/proc/{pid}/maps和排除文件映射。这是您的进程正在使用的虚拟内存的近似值。

2020-11-13