我在Windows上寻找具有Qt(v5.3)高性能的IPC。 在我的最终情况中,我将有3个(或更多)生产者流程和一个消费者流程。
在此之前,我使用1个生产者线程和1个消费者线程进行了一些测试,使用QLocalSocket/QLocalServer(example)和QSharedMemory(example),我有对于时代具有可比性感到惊讶。
特别是我得到了以下结果(从第一条消息到收到的最后一条消息):
发送/写入1000个字符串消息:QSharedMemory:1020ms,QLocalSocket 1010ms 发送/写入5000字符串消息:QSharedMemory:5010ms,QLocalSocket 5090ms 发送/写入10000字符串消息:QSharedMemory:10097ms,QLocalSocket 10850ms
问题是:
提前致谢。 arthur86
更新23/10/2014
我花了更多时间来调查这个疑问,我找到了合理的回答。 我发现线程之间的上下文切换使用了前一个时间的很大一部分。特别是,如果我删除Thread :: msleep(0);在每个周期结束时,我能够达到更低的计算时间。
例如
我认为删除Thread::msleep(0)
并不是一个好主意。不是吗?
你能建议我用睡眠指令改善表现的一些方法吗?