mmap()是一个系统级地址,用于映射磁盘上文件的数据.使用mmap(),您可以引用磁盘上的任何文件,就像它是一个简单的byte []数组一样.它可以用于以下任何应用中.
每当您从磁盘上的文件请求数据时,它都会加载到RAM中.如果有两个单独的程序需要来自同一文件的数据,则可以使用mmap()直接从磁盘访问该文件,从而减少冗余的RAM使用量.
当您处理的数据太大而无法放入主内存(RAM)时,您可以使用mmap()来访问物理存储在磁盘上的文件数据的一部分,从而再次减少RAM使用和处理有效地大于RAM数据.
请注意,在64位系统中,mmap()可以解决磁盘上的任何位置,但不能解决32位系统中的任何位置!因为在32位系统中,最大可寻址空间限制为2 ^ 32 - 1(4GB),但在64位系统上,可以寻址数PB的位置.
malloc()为您提供了一个指向堆(在RAM中)存储临时对象的空间的指针.
mmap()和malloc()之间唯一的相似之处在于它们都返回指针.但是mmap()指向磁盘上的内存,malloc()指向堆上的内存.