【发布时间】:2017-09-18 09:07:30
【问题描述】:
据我了解,mmap 一个适合 RAM 的文件就像将文件放在内存中一样。
假设我们有 16G 的 RAM,我们首先映射一个 10G 的文件,我们会使用一段时间。这在访问方面应该是相当有效的。如果我们然后映射第二个 10G 文件,那会导致第一个被换出吗?还是其中的一部分?如果是这样,什么时候会发生?在 mmap 调用中,还是在访问新加载文件的内存区域时?
如果我们想再次访问第一个文件的指针的内存,这会使其再次加载交换文件吗?那么,假设我们在第一个文件和第二个文件对应的内存之间交替读取,这会导致灾难性的性能吗?
最后,如果其中任何一个属实,映射几个较小的文件会更好吗?
【问题讨论】: