每毫秒数千次并不多说。如果它是一个字节的时间不是很多。如果它更多......好吧,这一切都取决于多少。
我建议不要共享内存。我建议“不要通过分享来沟通,通过沟通来分享”。如果,一旦你完成,分析显示额外的内存副本确实是瓶颈,那么,是的,也许一些基于互操作的共享内存解决方案是修复。通常你会发现情况并非如此。
我只想对共享内存进行评论
- 期望共享内存映射到虚拟内存中的不同位置。这意味着在一个进程和下一个进程之间传递指针是无用的,您必须使用共享内存基址的偏移量
- 您将无法访问malloc / new和free / delete堆管理功能,但您确实拥有良好的内存块来设置自己的内存管理对象。
- 您必须设计一个明确的所有权模型,其中哪个进程可以访问哪一块内存。
- 对跨进程共享的对象(例如簿记对象)的任何访问都必须受到互斥锁的保护
- 寻找最小化互斥锁被锁定所花费时间的策略,freelists是你的朋友。
- 在任何生产者消费者模型中,确保您已经清楚地考虑了流量控制。您不得溢出或下溢共享空间。信号量是你的朋友。
醇>
我认为这涵盖了它。我同意上述内容,而是使用IPC来复制内存,除非你真的必须使用共享内存,这些陷阱可能会让你活着。