C++笔记之内存映射、零拷贝与共享内存code review!文章目录C++笔记之内存映射、零拷贝与共享内存1. 内存映射(Memory Mapping / mmap)基础1.1 定义与核心本质1.2 核心优势1.3 工作流程(三步)2. 零拷贝(Zero-Copy)的本质2.1 传统 I/O 存在的问题2.2 零拷贝的定义与目标3. 内存映射与零拷贝的关系3.1 结论:包容与被包容3.2 mmap 为何被视为零拷贝的实现3.3 mmap 的局限:"不完全"的零拷贝3.4 零拷贝家族的其他实现方式3.5 核心对比4. 引入共享内存后的三方关系4.1 共享内存与内存映射(mmap)的区别4.2 共享内存与零拷贝的关系4.3 三者的宏观定位5. 总结1. 内存映射(Memory Mapping / mmap)基础1.1 定义与核心本质内存映射是一种将文件或物理内存直接映射到进程虚拟地址空间的技术。在传统 I/O 中,读取文件需要经由内核缓冲区到用户缓冲区的多次数据拷贝(read/write系统调用)。而内存映射建立后,文件内容直接对应到一段内存地址,程序可以用指针直接操作这段内存,操作系统会在后台自动同步数据,从而实现"像读写内存一样读写文件"。1.2 核心优势零拷贝思想的应用:减少了内核空间与用户空间之间的数据复制,极大提高大文件读写效率。进程间通信(IPC):多个进程可以映射同一个物理文件或共享内存区域,实现超高速的数据共享。简化编程:把复杂的磁盘文件操作简化成了直观的指针/内存操作。1.3 工作流程(三步)映射(mmap):进程发出请求,操作系统在虚拟内存中分配一块区域,并将其指向目标文件。触发(缺页异常):刚开始内存中并没有数据,当程序