Java内存映射

内存映射文件是一种允许Java程序直接从内存访问的特殊文件。

通过将整个文件或者文件的一部分映射到内存中、操作系统负责获取页面请求和写入文件,应用程序就只需要处理内存数据,这样可以实现非常快速的IO操作。

用于内存映射文件的内存在Java的堆空间以外。

Java中的java.nio包支持内存映射文件,可以使用MappedByteBuffer来读写内存。

优点:

(1)性能:内存映射文件比通过普通的IO来访问文件要快

(2)能够加载普通方式无法访问的大文件

(3)另外一个优势是这些文件能够共享,在进程间提供共享内存,而且比普通的基于loopback接口的Socket要快10倍

缺点:

有增加页面错误(page fault)的可能,因为操作系统仅仅加载一部分文件到内存中,如果被请求的页面不在内存中那就会导致一个页面错误



标签: 映射、内存、loopback、mappedbytebuffer、文件、面试
  • 回复
隐藏