【发布时间】:2011-07-16 09:37:21
【问题描述】:
跨进程内存缓冲区总是有一些开销,我的理解是这相当高。但是如果你正在实现一个跨进程渲染缓冲区,这与其他数据一样并不重要,所以我们可以使用哪些技术来从多个进程中“原始”访问一块内存,没有安全网,除了它不会崩溃?还是现代操作系统根本无法使用未抽象的内存来实现这一点……在过去,您不能获得指向内存中任何位置的指针吗?
我正在使用 C++,但该问题适用于 Win XP/Vista/7、MacOSX 10.5+(以及不太重要的 Linux)。
【问题讨论】:
-
问题是 - 如果没有某种形式的同步,您的第二个进程如何知道是否渲染帧?与给定帧的实际渲染/显示步骤相比,我敢冒险实现这样的事情(比如使用信号量)不会增加太多额外的开销......
-
跨进程通信消息非常小,问题是我不希望通过安全措施和锁定等措施减慢缓冲区的写入/读取速度,这可能是 5Mb 的数据或更多。
标签: c++ winapi macos ipc shared-memory