比较MappedByteBuffer搭配RandomAccessFile, BufferedReader & BufferedWriter读取大文件性能
处于对java.nio.concurrent包下的MappedByteBuffer使用直接内存,通过内存映射的方式读写文件的好奇,这里测试了这些类的使用和效率。
对于小文件(文件大小在256M以内,大小size可以用int变量表示), 使用MappedByteBuffer进行读写2M大小的文件只需要24ms, 而使用BufferReader, BufferWriter则需要64ms。
之后测试了对于大文件(文件大小大于256M, 大小size需要用long变量表示)逆序输出(单线程)情况下的效用, 使用MappedByteBuffer加ByteArrayOutputStream逆序输出(每一行仍正序输出)一个2M的文件, 用时达到了665ms