Java NIO系列1:从操作系统的角度剖析I/O

认识IO的本质

一、IO对性能的影响

首先来理解下IO对程序性能的影响:

对吞吐率的影响

从上面的表中可以得出的结论是:处理时间与IO时间对吞吐率的影响:把单位处理时间减半,仅能提高吞吐率2.2%。而仅仅缩短I/O延迟10%,就可使吞吐率增加9.7%;把I/O时间减半,吞吐率几乎翻番

二、理解BIO的局限性

BIO,也称为阻塞IO,是在jdk1.4之前使用的IO模型,BIO的局限可以从下面的叙述中理解:

现在大多数基于Java的应用在处理数据上的不足在于JVM对IO处理的效率。操作系统往往发送给缓冲区的数据是块数据,而JVM的BIO类则把块数据切分为一个一个字节(或者几行文本数据)进行处理,而一次数据的拷贝需要往返几个来回。所以可见传统的BIO类在处理数据的低效。当然,BIO类也可以传送大量的数据,那就是用RandomAccessFile类。而该类提高效率的关键是使用类似于操作系统的read与write系统调用。

这就是说,只要直接使用Java本地接口编写程序,那么IO的效率是不是就能提高了呢?固然,但是直接操作本地操作系统的特性会使得程序绑定于某一类的操作系统,程序无法移植。为了保持Java跨平台的特性,Sun公司推出了java.nio包。具体其实Channel类和Selector类。

IO的操作系统解释

一、缓冲区操作

IO的基础就是缓冲区,本质上将,IO也

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值