RIO在这里代表Windows8'注册I / O'网络扩展。从查看示例代码看,无论您是将RIONotify与事件还是IO完成端口一起使用,您基本上都会编写相同的循环,并且具有几乎相同的性能特征。循环体是:
RIONotify() [event or IOCP]
Wait [on the event, or using GetQueuedCompletionStatus()]
RIODequeueCompletion()
// Process the dequeued events
基本上,IO完成端口的使用似乎没有提供超过“事件”的附加功能。通知/等待,因为实际的消息队列是通过RIODequeueCompletion完成的。因此,无论您使用事件还是IOCP,都无关紧要。我的问题是,我是否忽略了模型之间任何有趣或重要的区别?
答案 0 :(得分:3)
RIO是关于向内核注册缓冲区以节省开销和更高效的队列管理。这不是一个根本性的转变。只需a lot less overhead。
IOCP不是要提高个别行动的表现。它是关于使用更少的线程和更少的上下文切换。 RIO更进一步。
答案 1 :(得分:3)