我遇到的大多数接收数据的示例应用都是使用异步调用。例如,c ++示例使用boost asio服务将消息处理程序绑定到回调。但是,只需要从单个套接字监听数据并按顺序处理消息的应用程序呢?有一个循环从套接字轮询/ recv并在不使用回调的情况下调用处理程序(假设主线程和日志记录线程是分开的)会更快吗?或者没有性能差异(假设消息的速度与网卡一样快,内核可以处理它们)?
我不知道有很多错综复杂的问题,例如由于分支预测之类的问题,回调对性能的影响。或者,如果回调的性能损失,则调用另一个线程来进行处理。很想听听关于这个主题的一些想法,经验和对话,以避免尝试两种实现来发现答案。