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

mmap a 10 GB file and load it into memory

本文关键字:加载 内存 一个 GB 文件 mmap      更新时间:2023-10-16

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

(我有足够的内存。)

阅读mmap:的手册页

MAP_POPULATE(自Linux 2.5.46起)

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

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