0

まず、この質問に答えていただきありがとうございます。

私は長い間私の質問に対する答えを見つけてきましたが、ひどく何もありません:/

NIO環境(NETTY)のパフォーマンスが向上していると思いますか:

接続が到着するたびに HandlerClass をインスタンス化するか、共有 HandlerClass を使用しますか? いいえ:


...getPipeline() {
    pipeline = ...;
   pipeline.addLast("handler", new HandlerClass());
}

また:

private handlerClass handler = new HandlerClass();
...getPipeline() {
    pipeline = ...;
   pipeline.addLast("handler", this.handler);
}

私のゲーム サーバーは 1000 を超える接続を受け取りますが、それは私が心配していることです。

ありがとうございました!

4

2 に答える 2

0

ハンドラー用のプーリング システムを作成しようとしているように思えます。1 つのハンドラーが一度に 1 つのリクエストしか処理できず、アプリが高度に同時実行されていると仮定します。このようにして、パフォーマンスを向上させるために、ハンドラー オブジェクトをメモリ内でインスタンス化したままにすることができます。

私は、pool4j を使用して運が良かったです。それがうまくいかない場合は、おそらく独自のプールを作成することをお勧めします。

http://code.google.com/p/pool4j/

また、poolit は、私が個人的に使用したことのないより一般的なライブラリですが、良いことを聞いています: http://programming.huyduong.com/poolit/index.html

于 2012-12-21T19:59:59.610 に答える
0

それは非常に簡単です... SimpleChannelHandler の状態が vars に保存されていない場合は、それを再利用します。彼の方法では、新しいクラスの初期コストを取り除き、GC のプレッシャーも軽減します。

于 2012-12-21T20:04:29.407 に答える