如果我想mmap
一个10 GB的文件并立即将整个文件加载到物理内存中,我该怎么办呢?
我不想使用像mlock
这样的功能,因为它需要root权限
是否有可以满足我需求的系统调用?
(我有足够的记忆。)
答案 0 :(得分:5)
MAP_POPULATE(自Linux 2.5.46起)
填充(prefault)页面表以进行映射。对于文件 映射,这会导致文件预读。以后访问 映射不会被页面错误阻止。 仅此后才支持私有映射
MAP_POPULATE
Linux 2.6.23
发出您的请求,并为短暂的等待做好准备(除非您超出进程限制)(取决于磁盘带宽和缓存)。