通过LRWP加速Java技术 - 编程入门网
修改,我们引入了一个 ContextAssistantManager 对象来管理 RequestHandlers 列表。这种方法不用再 添加或删除请求处理程序,ContextAssistantManager 将跟踪使用中的处理程序 并且对相同上下文的请求会将 servlet 线程置于休眠状态。
ContextAssistantManager 代码段:
代码示例 1:ContextAssistantManager 代码段 通过LRWP加速Java技术(3)时间:2011-07-08 Sun / Dmitry Isakbayev可改进性能的其他修改: 避免多个副本 编写代码时使用函数调用返回值作为检查条件,比如说:
避免分配字节数组 发送给套接字的(或从套接字接收的)网络代码需要使用字节的格式。因此如 果数据为 String 格式则需要将其转换为字节格式,从而分配字节数组发送或接 收数据。除了使用 String 和字节数组存储数据之外,还可以使用直接映向缓冲 区(如 ByteBuffer)的方式,这样可以允许创建并销毁这些对象。比如说,如果 要向对等体发送一个请求,可以在 StringBuffer 中创建报头,然后将其转换为 String 以访问字节。还可以使用 ByteBuffer 来存储数据,并且可以使用 CharBuffer 来创建视图,而不是使用 StringBuffer 或 String。这同样适用于 返回应答消息。 优化 GlassFish 优化 HTTPConnector Grizzly GlassFish 的 HTTPConnector、Grizzly 默认将使用 NIO 处理客户机请求的 连接。New Input/Output (NIO) 是 JDK 1.4 引入的 IO 机制,它提供了可伸缩 的网络的文件 IOI,以及本地缓冲管理功能。NIO 引入了通道(channel)的概念 ,允许流(stream)成为通道。SocketChannel 是可选择的通道,并且允许选择 读取或写入多个流。有了它,将不再需要为每个连接使用一个单独线程。因此服 务器现在可以只使用少许线程处理多个客户机连接,从而提高性能并减少了线程 开销。SocketChannel 可以是闭塞的也可以是非闭塞的。Grizzly 同时提供了闭 塞和非闭塞实现,并且默认情况为非闭塞实现,它使用 2 个线程和最多 5 个线 程处理来自客户机的请求。这种方式是可优化的,将线程数量增加到 10 个可以 达到最佳性能。增加池容量也可以改进性能。池容量的增加如下所示:
keepalive 也得到的增加,方法是将 max-connections 修改为 1000000 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |