mmap一个10 GB的文件并将其加载到内存中

时间:2014-11-04 03:21:34

标签: c++ linux mmap

如果我想mmap一个10 GB的文件并立即将整个文件加载到物理内存中,我该怎么办呢?
我不想使用像mlock这样的功能,因为它需要root权限 是否有可以满足我需求的系统调用?

(我有足够的记忆。)

1 个答案:

答案 0 :(得分:5)

阅读man-page for mmap

  

MAP_POPULATE(自Linux 2.5.46起)

     

填充(prefault)页面表以进行映射。对于文件     映射,这会导致文件预读。以后访问     映射不会被页面错误阻止。     仅此后才支持私有映射MAP_POPULATE     Linux 2.6.23

发出您的请求,并为短暂的等待做好准备(除非您超出进程限制)(取决于磁盘带宽和缓存)。