为什么boost进程间不支持只写内存映射?
也许我遗漏了一些东西,但只写映射不会比读/写映射快得多,因为操作系统不必从磁盘读取页面,只需将页面从内存刷新到磁盘?此外,它还具有完全非阻塞的优势(冲洗和销毁除外)。
从 boost 切换到 native OS 内存映射对我有好处吗?
最佳答案
事实上,如果您分配一个大小为 20Gb 的新内存映射文件,您将获得该大小的稀疏文件分配。
当“映射到”该文件的页面时,需要进行读取操作(因为操作系统可能会判断该页面尚未实际存在于磁盘上),并且仅当(如果)这些页面是dirty 需要将它们写出来。
当然,这取决于实现,我不认为 POSIX(可以)保证这一点,但这不是 IYAM 的不合理行为,并且相当于只写映射。
关于c++ - 在boost中只写内存映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24352943/