內存映射文件非常特別,它允許Java程序直接從內存中讀取文件內容,通過將整個或部分文件映射到內存,由操作系統來處理加載請求和寫入文件,應用只需要和內存大交道,這使得IO操作非常快。加載內存映射文件所使用的內存在Java堆區之外。Java編程語言支持內存映射文件,通過java.nio包和MappedByteBuffer 可以從內存直接讀寫文件。
內存映射IO最大的優點可能在於性能,這對於建立高頻電子交易系統尤其重要。內存映射文件通常比標准通過正常IO訪問文件要快。另一個巨大的優勢是內存映 射IO允許加載不能直接訪問的潛在巨大文件 。經驗表明,內存映射IO在大文件處理方面性能更加優異。盡管它也有不足——增加了頁面錯誤的數目。由於操作系統只將一部分文件加載到內存,如果一個請求 頁面沒有在內存中,它將導致頁面錯誤。同樣它可以被用來在兩個進程中共享數據。
大多數主流操作系統比如Windows平台,UNIX,Solaris和其他類UNIX操作系統都支持內存映射IO和64位架構,你幾乎可以將所有文件映射到內存並通過JAVA編程語言直接訪問。
如下為一些你需要了解的java內存映射要點:
好吧,小伙伴們,就是這些。內存映射IO是高級程序員特別是對於用Java編寫高性能應用的程序員的一個重要概念。
相關閱讀:
Linux高端內存映射(上) http://www.linuxidc.com/Linux/2012-05/60627.htm
Linux高端內存映射(中) http://www.linuxidc.com/Linux/2012-05/60628.htm
Linux高端內存映射(中) http://www.linuxidc.com/Linux/2012-05/60902.htm