在我看来,将适合内存的文件进行mmap映射就像是将文件放入内存中。
假设我们有16G的RAM,并且我们首先使用mmap对一个10G的文件进行了映射。这样在访问方面应该是相当高效的。如果我们接着再对另一个10G的文件进行mmap,那会导致第一个文件被交换出去吗?或者其中的部分会被交换?如果是这样的话,这会在什么时候发生呢?是在mmap调用时还是在访问新加载的文件的内存区域时?
如果我们想要再次访问第一个文件指针所对应的内存,那么这会使它重新交换进入内存吗?也就是说,如果我们交替读取第一个文件和第二个文件相应的内存,那么是否会导致性能严重下降?
最后,如果这些都是真的,那是否更好地将多个较小的文件进行mmap映射?