如果我从 tmpfs 映射一个文件,内存使用量会增加一倍吗?

如果我从 tmpfs 映射一个文件,内存使用量会增加一倍吗?

我正在开发一个系统,我们使用 mmap 和 MAP_LOCKED 和 MAP_POPULATE 将文件锁定在内存中以提高性能。如果我们对 tmpfs 中的文件执行此操作,它会使用现有的 tmpfs 内存区域还是会为 mmap 制作一个副本?

答案1

Tmpfs 是一个将所有文件保存在虚拟内存中的文件系统。

tmpfs 完全存在于页面缓存和交换中

mmap当需要数据位于内存中时,将文件数据复制到磁盘缓存。使用 tmpfs,所有数据都已在磁盘缓存中(或换出)。因此映射的数据不会被复制:它已经位于要复制到的位置。

相关内容