2

我正在编写支持大量(50,000+)连接的 tcp 服务器,我发现了这一点。

同步发送的性能至少比异步发送好 3 倍。除了这两行之外,这些程序是相同的:

m_socket.Send(sendingBuffer, length, SocketFlags.None);

m_socket.BeginSend(sendingBuffer, 0, length, 0, new AsyncCallback(SendCallback), this);

在 SendCallback 中,我只调用 EndSend,仅此而已。

这种巨大的性能差异来自哪里?异步方法不应该表现得更好吗?

4

1 回答 1

3

异步方法通常同步方法慢(由于在实现中涉及一些额外的开销),但如果您需要它们执行时执行某些操作,则总体上“更快” - 如果您只是等待它们完成,它们是完全没有必要的.

于 2012-06-04T20:31:16.413 回答