我很想知道mappedbytebuffer是否占用了Java中的直接内存?在这里中提到
还可以通过将文件的区域直接映射到内存来创建直接字节缓冲区。
当我将文件映射到内存中时,应该使用直接内存。但是我用JVM "-XX:MaxDirectMemorySize=200MB“启动了一个程序,然后我试图将一个1GB的文件映射到内存中,它成功了。更重要的是,我首先用200 of分配了一个directByteBuffer,然后尝试将1GB的文件映射到内存中,但它仍然有效!那么,mappedbytebuffer占用了内存的哪一部分呢?
发布于 2017-06-23 01:40:05
我认为,当您将更大的文件映射到小内存中时,mappedbytebuffer实例可能会将您刚刚使用的文件的某个区域映射到内存中,然后内存中映射的另一个区域将被MMU转换为交换(硬盘上的虚拟内存)。
https://stackoverflow.com/questions/44689609
复制相似问题