内存映射文件v / s普通文件IO

时间:2012-01-06 12:14:29

标签: memory-management operating-system

当我们谈论内存映射文件时,通常会提到文件的一部分可以映射到进程地址空间,我们可以使用指针等对它进行随机访问。我也在许多地方读过我应该有足够的内存来容纳整个文件到内存中。现在这两个语句对我来说有点混乱,因为如果我们需要足够的内存来存储整个文件而不是优势呢?我知道有关额外内核空间复制内容或快速时间的好处,因为数据不会像块流等那样被块读取或字节读取。

1 个答案:

答案 0 :(得分:1)

你不需要拥有整个文件的内存 - mmap是延迟加载的,所以你可以在不必使用大量ram的情况下修改大文件。另一个巧妙的技巧是,如果你必须向后迭代它而不必将其重新组合。