2

より具体的には、私はJava NIOを使用してサーバーを作成しましたが、静かに動作します.いくつかのテストの後、何らかの理由で、SocketChannels書き込みメソッドへの呼び出しには平均で1msかかり、他の読み取りメソッドはhand は平均 0.22ms かかります。

最初は、ソケットで送信/受信バッファーの値を設定すると少し役立つかもしれないと考えていましたが、考えてみると、すべてのメッセージは非常に短く (数バイト)、1 つのメッセージで約 2 秒ごとにメッセージを送信します。繋がり。送信バッファと受信バッファのサイズはどちらも 1024 バイトをはるかに超えているため、これが実際に問題になることはありません。一度に数千のクライアントが接続されています。

今、私はこれについて少しアイデアがありません.これは正常ですか?もしそうなら、なぜですか?

4

2 に答える 2

0

@Nuoji私はnonblocikng-ioを使用しています。はい、セレクターを使用しています。チャネルに書き込むときは、次のことを行います。

投稿の 2 番目の段落に書いたことは真実であるため、ほとんどの場合、チャネルは書き込みの準備ができていると想定しています。直接チャネルします。ただし、チャネルにすべてを書き込めない場合 (またはそのことについては何も書き込めない場合) は、キーに設定された興味を書き込みに設定します (そのようにして、次にチャネルに書き込もうとすると、準備が整います。書きます)。元の投稿に記載されている結果を得た私のテストでは、これはめったに起こりません。

はい、コードのサンプルを提供できますが、誰にも迷惑をかけたくありませんでした。特に、セレクタ スレッドまたは書き込みスレッドのどの部分が見たいですか?

于 2011-02-14T13:36:54.133 に答える
0

まず、Wireshark を使用して変数を排除します。

于 2010-12-14T21:21:48.097 に答える