Java-mappedbytebuffer是否占用直接内存?

时间:2017-06-22 03:24:09

标签: java mappedbytebuffer off-heap

我很好奇mappedbytebuffer是否占用Java中的直接内存?正如here

中提到的那样
  

也可以通过将文件区域直接映射到内存

来创建直接字节缓冲区

当我将文件映射到内存时,应使用直接内存。但我开始使用JVM param" -XX:MaxDirectMemorySize = 200MB"然后我尝试将1GB的文件映射到内存中,它有效。更重要的是,我首先分配了一个200MB的directByteBuffer然后尝试将1GB的文件映射到内存中,它仍然有效!那么,mapbytebuffer中的哪一部分内存会占用?

1 个答案:

答案 0 :(得分:1)

我认为,当您将较大的文件映射到小内存时,mappedbytebuffer的实例可能会映射您刚刚使用过的文件的某个区域  进入内存,然后已经映射到内存中的其他区域将通过MMU交换到SWAP(硬盘上的虚拟内存)