私のアプリケーションは.netで書かれており、Windowsサーバ上で動作します。 TCP/IPを介してリモートサーバーに接続し、引き続きリスニングを行います。接続の開始時にはログインメッセージであるメッセージを1つだけ送信し、その後は決してメッセージを送信せずにサーバーからリッスンします。そのストリームソケットとパケットはかなり頻繁にやってくるので、60バイトから200バイトにおよぶサイズが約6000パケットになります。これまではソケットクラスを使用していて、リモートサーバーに接続しています。ログイン要求を送信した後、私は継続的にストリームを受信し始めます。私はBeginReceive、socketflagsなしを使用しているフローを受信する。そしてすべての初心者の後で、それは仕事を繰り返す。より速い方法でストリームを受け取る他の方法はありますか?私のアプリケーションはリアルタイムかつ非常に非常にタイムクリティカルです。 1マイクロセカンドでも問題ありません。誰でも提案できますか?Tcpclient/Tcplistnerクラスはソケットクラスよりも高速です
0
A
答えて
2
TcpClient
は、単にのSocket
とNetworkStream
の上にあるラッパーです。それは単にを実行しません - それは単に別の(より便利な)APIです。さらに、Joachimが指摘しているように、これは実際のボトルネックになる可能性は低いです。
あなたが試すかもしれないいくつかのアイデア:
- を
NetworkStream
APIを使用している場合、バッファされたデータがある場合に指示する、DataAvailable
をご確認ください。お使いのコンピュータを最も可能性が高い - がある場合、その処理メッセージ対バッファリングメッセージの手順を分離非同期 *(BeginRead
) - にその時点スイッチで、偽の
DataAvailable
まで(数Read
経由)同期を処理してみてください複数のコアがあり、別々のリードループ/プロセスキューがスループットを増加させる可能性があります。あなたも並列処理スレッドを検討することもでき、それは
リモートサーバを扱う、「でも、1マイクロ秒の事項は、」単に実行不可能である、より複雑です。そのレベルでは、おそらくの使用(ref
を経由して)を参照して、おそらくclass
を使用することと違って、フラットスワップで変更することはできません。オブジェクトのプールなど、非常にトリッキーです。
関連する問題
- 1. なぜWebViewはTextViewよりもはるかに高速です
- 2. Javaは、バブルソートでC#よりも実際に高速ですか?
- 3. 速いtest1のテストよりも高速である理由
- 4. ParHashMapはHashMapよりもルックアップ操作が高速ですか?
- 5. Oracleストアドプロシージャは、Microsoft.NETアプリケーションの行SQLよりも高速ですか?
- 6. SQLiteはMySQLよりも高速ですか?
- 7. なぜopenssl_pkey_newはgpgよりもずっと高速ですか?
- 8. Access 2007はAccess 2013よりも高速ですか?
- 9. JavascriptはC++よりも4倍高速ですか?
- 10. SqlBulkCopyはDapperよりも高速ですか?
- 11. stream.max()はstream.reduce()よりも常に高速ですか?
- 12. なぜMatlabはC++よりも11倍高速です
- 13. 標準アレイは、convネットフィードフォワードのgpuArrayよりも高速です。
- 14. insertAdjacentHTMLはinnerHTMLよりもずっと高速ですか?
- 15. `scipy.misc.comb`はアドホックな二項計算よりも高速ですか?
- 16. RxJSは命令よりも高速ですか?
- 17. クロスインナーよりもはるかに高速が仕事で
- 18. マルチスレッドメモリアクセスは、シングルスレッドメモリアクセスより高速ですか?
- 19. "startsWith"は "indexOf"より高速ですか?
- 20. dart2jsのコードはどのようにjavascriptよりも高速ですか?
- 21. MS Access 2007の高速ポータブルデータベースの推奨事項よりも速いものはありますか?
- 22. JavaがC++よりも高速な場合(またはJITが高速でプリコンパイルされている場合)
- 23. はコアグラフィックステキストがコア・テキストよりも道高速です - 私は何か
- 24. なぜiOSエミュレータはAndroidよりもはるかに高速ですか?
- 25. なぜp ++はp = p->よりもはるかに高速です
- 26. JQuery .mouseenter()イベントは、.click()または.mousedown()イベントよりも非常に高速です
- 27. なぜ行列乗算はhmatrixよりもRepaで高速ですか?
- 28. WindowsでFFTWがLinuxよりも高速なのはなぜですか?
- 29. コンストラクタより高速ですか?
- 30. dequeを使用するよりもPythonの高速循環バッファ?
もっとコードを表示するのに役立ちます。受信ループはどのように見えますか? – bobbymcr
サーバプログラムが同じコンピュータまたはローカル超高速ネットワーク上に存在しない限り、ネットワークの待ち時間によってマイクロ秒の解像度が無駄になります。 –