managed_shared_memory vs windows_shared_memory

Sin*_*rMJ 5 c++ boost-interprocess

我目前正在查看Boost的进程间库的文档,并试图弄清楚它们之间的区别.

从我可以说,唯一的区别是持久性(当最后一个进程退出时释放Windows共享内存,只有在被告知时才释放managed_shm),是否存在其他差异,如速度或我错过了?

orh*_*ej2 1

不同之处在于managed_shared_memory遵循 POSIX 要求,从而模拟缺少的部分windows_shared_memory(即持久性)。这是通过内存文件映射来完成的。

其缺点managed_shared_memory似乎是与其他应用程序(使用本机 Windows 共享内存)的互操作性以及首次访问时的潜在速度。windows_shared_memory另一方面的缺点是缺乏系统之间的可移植性。