2017-06-22 128 views
-1

我很好奇mappedbytebuffer是否佔用Java中的直接內存?如在hereJava-mappedbytebuffer佔用直接內存嗎?

mentiond直接字節緩衝器也可以通過映射文件的區域被創建直接進入存儲器

當我映射文件到存儲器中,應使用直接存儲器。但我啓動了一個JVM參數「-XX:MaxDirectMemorySize = 200MB」的程序,然後我試圖將一個1GB的文件映射到內存中,它工作。更重要的是,我首先分配了一個200MB的directByteBuffer,然後試圖將1GB的文件映射到內存中,它仍然有效!那麼,內存映射的哪部分緩衝區佔用了?

+0

您認爲該引用中的「可能」一詞意味着什麼?你的問題是「是否」? 「可能」一詞就是答案:或許!也許!可能!未知!依靠! ---任何其他能夠幫助你理解的詞? – Andreas

+0

使用比堆大的MMF有什麼意義?這打破了將文件連接到內存的目的。 – efekctive

回答

1

我想,當你映射一個大文件成小內存,mappedbytebuffer實例可以映射您剛剛使用 到內存中的文件的區域,然後一直地圖在內存中會交換到其他區域交換(MMU上的虛擬內存)由MMU提供