0

首先,感谢您回答这个问题。

我一直在寻找我的问题的答案,但糟糕的是没有:/

您认为它对于 NIO 环境(NETTY)有更好的性能:

每次连接到达时实例化 HandlerClass 还是使用共享的 HandlerClass ?IE:


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

或者:

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

我的游戏服务器将收到超过 1000 个连接,这是我担心的事情。

谢谢!

4

2 回答 2

0

在我看来,您正在为您的处理程序创建一个池系统。假设一个处理程序一次只能处理一个请求,并且您的应用程序是高度并发的。这样,您可以将处理程序对象实例化在内存中以获得更好的性能。

我在使用 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 回答