NIO中的内存映射文件使用对效率提高的验证
?对比较大的而不能放入内存的文件进行I/O操作时,如果使用NIO中的内存映射文件对性能效率和速度的提高是非常显著的。首先需要获取文件的通道,然后调用通道的map(FileChannel.MapMode mode,long position,long size)函数将文件从position位置开始的长度为size的内容映射到内存中。具体的效率比较代码示例如下:
?
- for(Tester?test:tests){??
- ????????????test.runTest();??
- ????????}??
- ????}??
- ??
- }??
?
?? 可以看到运行后的结果如下:
????????? ?使用stream write所消耗的时间:
?????????? 0.92
????????? 使用mapped write所消耗的时间:
?????????? 0.12?
????????? 使用stream read所消耗的时间:
?????????? 0.50
???????? 使用mapped read所消耗的时间:
?????????? 0.06
??? 效率确实大幅度提高啊。