Windows上的共享内存延迟

时间:2019-03-07 08:49:09

标签: windows shared-memory latency

我已经在Windows 10系统上使用共享内存编写了一个简单的进程间通信。 基本上,我使用MS示例:https://docs.microsoft.com/en-us/windows/desktop/memory/creating-named-shared-memory创建写/读存储器-我稍微扩展了程序,以在两个进程之间获得某种请求/响应功能。 进程A监视一个特定的字节以等待请求-如果此字节设置为“ *”(来自进程B)-进程A写入一个简短的答案,还设置一个特定的字节以指示已写入响应。 因此非常基础且可以正常工作-这是等待请求/响应的代码:

void WaitForMessage()
{
    while (*pBuf != '*') Sleep(1);
}

我正在这样浪费时间:

    auto start = GetTickCount();
    WaitForMessage();
    auto end = GetTickCount();

令我惊讶的是,此简单操作所需的时间。平均而言,发送请求和接收响应需要30毫秒。因此,检测共享内存上的消息大约需要15毫秒。 共享内存正常吗?我本来希望它会更快。

解决方案:测试表明,Sleep(1)已经需要15毫秒了……很奇怪,但是很容易知道。

0 个答案:

没有答案