2017-09-01 50 views
5

我目前正在查看Boost的進程庫的文檔,並試圖找出它們之間的區別。managed_shared_memory vs windows_shared_memory

從所有我可以告訴唯一的區別是持久性(Windows共享內存是在最後一個進程退出時釋放,managed_shm只有當被告知時釋放),還有其他差異,如速度或我失蹤?

+2

平臺兼容性?像「windows_shared_memory」這樣的東西看起來很平臺特定。 –

+0

那是真的,它只是windows,但是在managed_shared_memory上使用它肯定有一些優勢嗎? – SinisterMJ

+0

我會想象它具有Windows平臺上的共享內存的功能,而不是所有平臺上可用的通用子集的功能,這些功能在boost :: interprocess支持 – Caleth

回答

1

區別是managed_shared_memory遵循POSIX要求,因此emulating the partswindows_shared_memory丟失(即持久性)。這是完成via memory file mapping

managed_shared_memory的缺點似乎是與其他應用程序(使用本機Windows共享內存)的互操作性,並可能在第一次訪問時加快速度。另一方面,windows_shared_memory的缺點是系統之間缺乏可移植性。

相關問題