我正在编写支持大量(50,000+)连接的 tcp 服务器,我发现了这一点。
同步发送的性能至少比异步发送好 3 倍。除了这两行之外,这些程序是相同的:
m_socket.Send(sendingBuffer, length, SocketFlags.None);
和
m_socket.BeginSend(sendingBuffer, 0, length, 0, new AsyncCallback(SendCallback), this);
在 SendCallback 中,我只调用 EndSend,仅此而已。
这种巨大的性能差异来自哪里?异步方法不应该表现得更好吗?