我在共享内存中遇到boost::interprocess::string
问题。
当我使用shared_memory_object
时,我可以操纵具有不同字段的结构,但是字符串(我得到分段错误)。
另一方面,当我使用managed_shared_memory
时,一切都很好。
我做错了吗?你知道使用managed_shared_memory
是否存在性能损失吗?
谢谢!
答案 0 :(得分:1)
要在boost进程中使用字符串,请参阅this question。
至于性能,它应该比大多数其他解决方案更好 - 这就是它存在的原因 - 在进程之间共享内存。在进程之间共享数据的每个其他方法都会产生共享内存不需要的开销(TCP的数据包头+ IO,数据库的DB往返等)