2

多くの(50,000以上)接続をサポートするtcpサーバーを書いていますが、これについて知りました。

同期送信は、非同期送信よりも少なくとも 3 倍優れたパフォーマンスを発揮しました。プログラムは、次の 2 行以外は同じです。

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 に答える