boost::进程间更新阵列的最快方法

boost::interprocess fastest way to update array

本文关键字:方法 更新 进程 boost 阵列      更新时间:2023-10-16

我目前使用 boost::interprocess 在共享内存中有一个 1028*32 字节的结构数组。 其中每个都包含游戏中玩家的位置和绘图信息,我正在从 DLL 中抓取这些信息以在远程覆盖中绘制。 我控制读取和写入的基本机制是共享内存对象开头的布尔值,每个进程打开和关闭该对象。 这种方法有效,我可以从游戏中的每个玩家那里获取信息,但不幸的是这种方法真的很慢。 有没有办法更快地传输这些信息? 如果可能的话,我希望拥有它,以便在数组的特定成员更新后我可以调用我的绘图函数(假设成员 0 更新,在我的抓取器 dll 更新下一个成员之前,开始绘制成员 0 的信息,然后继续)。

好吧,你可以为每个成员提供一个标志,并不断处理数组并检查新设置的标志。如果您需要更多事件样式通知,那么您可以为每个成员设置一个监视器,并在更新后发出信号。不过,我不确定拥有 1000 台显示器会如何影响性能。