在 Linux 中读取文件的最快方法?

mez*_*hic 3 c c++ linux memory-mapped-files linux-kernel

在 Linux 上,将文件读入字节数组/处理字节的最快方法是什么?这可能包括内存映射、系统调用等。我不熟悉许多 Linux 特定的功能。

过去我使用了 boost 内存映射,但我需要更快的 Linux 特定性能而不是可移植性。

Art*_*Art 5

mmap如果文件足够大,应该是访问文件内容的最快方式。设置内存映射会产生初始成本,但不需要将数据从页面缓存复制到用户空间,从而抵消了这一成本。如果您想要文件的所有内容,则为程序分配内存的成本应该或多或少与mmap.

与往常一样,您最好的选择是进行测试和基准测试。