客户端NIO实践分析
来源:互联网 发布:c语言入门教学视频 编辑:程序博客网 时间:2024/06/09 16:20
http://java.csdn.net/index.php/2009/09/23/专家专栏第二期:客户端nio实践分析/
传统IO操作和NIO操作的区别
1.对于数据处理由Stream方式转变称为了Block方式。
第一种转变不适合需要对于字节流做处理的场景。(需要对字节充分作处理,例如我在另一个优化中对于字节流采用lazy Analysis,通过边解析边交验的方式,提前过滤无效请求,降低由于分析大数据包无效请求带来的性能消耗)。
2.事件驱动机制替换了传统的一个线程处理到底的模式。
但是Block传输和处理这种转变符合操作系统的真实模式,使Java可以充分利用各个操作系统的实现来优化性能,同时管道的思想也符合操作系统的真实实现(原来Java都是将双向通道拆分为In,Out的)。事件驱动使得完整的处理流程被拆分成为流水线作业,最大程度上利用了资源,防止后端处理成为了前端请求的瓶颈,降低了服务器的吞吐量,同时最大限度的给开发者优化流程,缩短关键路径的机会。
下面表格大致列举了传统IO和NIO在客户端使用的需求和各自的优势(两者都需要的就不列入其中了,例如容错恢复等)
需求优势IO(连接池)1. 连接池的管理。2. 高并发大压力下Socket数量庞大,对于文件句柄消耗也大1. 数据发送接受处理简单,单线程模式。2.可以对字节流逐一解析,避免内存过分无谓消耗NIO1. 交互的协议需要支持会话。(也可以不支持,这就会使得处理模式退化,效率下降,后续会谈到)2. 对于接收和发送需要支持多线程,提高效率3. 需要对Channel和Block有所熟悉1. 资源利用率最大化,性能提升(消息通道的充分利用,操作系统IO优化的使用)2. 充分灵活的将处理分割为多个工作项,流水线作业,减小业务处理对服务器服务请求接收吞吐量的影响。
- 客户端NIO实践分析
- 客户端NIO实践分析
- 客户端NIO实践分析
- 客户端NIO实践分析
- NIO-实践
- NIO实践
- NIO客户端
- netty(五) NIO创建的TimerServer源码分析之客户端
- tcp nio 服务端、客户端例子--参考《分布式Java应用:基础与实践》
- Java nio 实践
- Netty/NIO实践
- NIO客户端(多线程)
- 【Java】NIO 客户端关闭
- ASP.NET AJAX客户端生命周期分析(实践篇)
- Android java.nio实践总结
- Java NIO客户端开发问题
- Android使用NIO开发客户端
- Android使用NIO开发客户端
- WCF中传输泛型List 对象
- 106条打造你成为交际大师
- 对Struts2中控制器的一点改进建议
- SQL Server 2005 安装程序无法获取 ASPNET 帐户的系统帐户信息?
- 小公司如何做好项目管理
- 客户端NIO实践分析
- ASP.NET 2.0数据教程:创建BLL类
- 在 ASP.NET 页面中处理 BLL 与 DAL 级别的异常
- 网站如何提高粘着度?告诉你几个常规方法
- Autumn 1.0 Beta[轻量级JSP开发框架,减少前后台交互代码量!]
- 开源信息系统开发平台OpenExpressApp 之 总体架构的由来
- 无题~
- javascript小技巧
- 1.编写程序,从键盘输入三个值,并打印其和、平均数、积、最小值和最大值