java io 和nio_java对比IO和NIO的文件读写性能测试
1. NIO采用更接近操作系统执行IO的方式:通道和缓存器;顾名思义,数据源的数据由缓存器通过通道进行传输。 2. 在JDK5之后,原始IO系统底层用NIO进行了优化,这可以通过sun公布的源码中找到,但是,NIO系统性还是比IO强。 3. 在稍微研究了IO源码以及部分sun源码,我觉得IO系统的性能瓶颈主要是由于原始的IO架构因素导致。原始的IO系统使用适配器模式,在JDK开发之初貌似是一个很不错的想法,但随着适配器嵌套的越来越多,IO的使用不但让人很烦,而且会影响性能,因为动态实现肯定是要降低性能的。 4. 为了能够尽量准确的验证我的想法,在IO部分的代码也是显示的用缓冲器进行读写。 5. 本地测试:50M文件:IO耗时1031ms,NIO耗时640ms;500M文件:IO耗时18900ms,NIO耗时13500ms。它们的时间差并不会因为文件大小的改变而产生剧烈变化,这说明不管是NIO还是IO在底层处理数据流应该是相似的,导致IO性能约束的是它原始的适配器模型的架构。 主干部分代码:
1.IO系统
2.NIO系统
由最代码官方编辑于2015-10-15 9:40:51
java io 和nio_java对比IO和NIO的文件读写性能测试相关推荐
- java bytebuffer 读写_java nio bytebuffer文件读写问题
为什么下面的代码从文件中读不出3和2来?importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOExc ...
- java基础巩固-宇宙第一AiYWM:为了维持生计,四大基础之OS_Part_2整起~IO们那些事【包括五种IO模型:(BIO、NIO、IO多路复用、信号驱动、AIO);零拷贝、事件处理及并发等模型】
PART0.前情提要: 通常用户进程的一个完整的IO分为两个阶段(IO有内存IO.网络IO和磁盘IO三种,通常我们说的IO指的是后两者!):[操作系统和驱动程序运行在内核空间,应用程序运行在用户空间, ...
- java中的三种IO(BIO、NIO、AIO)
IO 阻塞和非阻塞主要指的是访问 IO 的线程是否会阻塞(或者说是等待) 线程访问资源,该资源是否准备就绪的一种处理方式 BIO(传统的IO) BIO是同步阻塞式的IO,以流的方式处理数据(效率低) ...
- java io流区别_Java中IO流的分类和BIO,NIO,AIO的区别
到底什么是IO 我们常说的IO,指的是文件的输入和输出,但是在操作系统层面是如何定义IO的呢?到底什么样的过程可以叫做是一次IO呢? 拿一次磁盘文件读取为例,我们要读取的文件是存储在磁盘上的,我们的目 ...
- Java中IO流的分类和BIO,NIO,AIO的区别
到底什么是IO 我们常说的IO,指的是文件的输入和输出,但是在操作系统层面是如何定义IO的呢?到底什么样的过程可以叫做是一次IO呢? 拿一次磁盘文件读取为例,我们要读取的文件是存储在磁盘上的,我们的目 ...
- java实践11之网络IO BIO和NIO(上)
文章目录 java实践11之网络IO BIO和NIO(上) 1 BIO: BIO的使用demo 优化版使用线程池实现异步处理 为何已经异步处理了还说BIO是阻塞的? BIO带来的问题 2 NIO ja ...
- IO流全面解析(含NIO部分说明)
IO流 File类的使用 概述 说明 案例 常用方法 File 类的获取功能 File类的重命名功能 File类的判断功能 File类的创建功能(创建硬盘中对应的文件或文件目录) File类的删除功能 ...
- Java AIO初探(异步网络IO)
Java AIO初探(异步网络IO) 原文: http://www.blogjava.net/killme2008/archive/2009/09/20/295743.html 按照<Unix网 ...
- OSI网络模型,IO模型,BIO模型,NIO模型,AIO模型,TCP/IP协议
文章目录 一.OSI网络模型 1.1.网络的7层架构 1.1.1.七层架构的网络图 1.1.2 七层架构的功能和作用 1.物理层 2.数据链路层 3.网络层 4.传输层 5.会话层 6.表示层 7.应 ...
- 明翰Java入门教学系列之IO篇
复习 1.线程的同步与通信有几种方式? 2.创建线程有几种方式? 3.什么是方法重写与方法重载? 4.线程与进程的区别? 5.如何最高效的遍历Map? 6.线程的状态与生命周期? 7.HashTabl ...
最新文章
- 看懂SQL Server的查询计划(绝对好文!)
- hdu 5534(dp)
- 太 6 了!区块链包包、疫情防控大脑……程序员这样玩转区块链!
- Windows驱动中的Crash回调
- 设备驱动程序INF文件——INF文件的节
- Windows Phone开发(25):启动器与选择器之WebBrowserTask
- 日本比中国快一个小时,泰国比中国慢一个小时
- [转]C#中多路IP摄像机的视频监控系统
- 企业级php第三方支付平台,ThinkPHP新版企业级php第三方api第四方支付平台程序源码商业版 带接口文件等 某宝售价3000元...
- canvas技术整理
- matlab 创建批量文件夹_学会这12个批量操作,从此告别加班!
- 前用户sudo免密码
- html认识数字游戏大全,认识HTML列表元素
- SQL语句执行顺序【全】
- 百度浏览器启动公司级内测 截图首度曝光
- xargs -i参数详解
- 图论科学家教你如何安排婚礼座次
- PPT幻灯片放映不显示备注,只让备注显示在自己屏幕上
- FreeNAS 0.72 安装 mldonkey 3.0.6
- IPv6的黑洞路由何去何从
热门文章
- 马尔可夫链 ▏小白都能看懂的马尔可夫链详解
- win7计算机序列号怎么查,怎么查看win7序列号
- WSO2 ESB 5.0.0 的一些控制台显示配置
- 三菱je -c中映射表的作用_如何将三菱PLC程序转换成欧姆龙PLC程序?
- 程序员王不留到底干了啥?!
- 西南大学计算机考研学硕,西南大学心理学学硕343分考研经验
- 解决accuracy_score报错Classification metrics can‘t handle a mix of continuous and multiclass targets
- iOS经典讲解之Socket使用教程
- OS + Win Office / word / excel / ppt / powerpoint / keyboard_shortcut
- 后端接口生成微信小程序二维码Api