miral
2013-02-19 16:34:11
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读写操作xml文件
- 分享java读写Properties文件
- java读写服务器web项目中的配置文件
- Spring Batch对XML文件的读写操作demo实例
- java多线程ReentrantLock、sync、ReentrantReadWriteLock性能比较
- java多线程类ReentrantReadWriteLock读写锁实例代码及内存缓存工具类
- java HashMap四种遍历查询方式耗时性能对比
- java程序中字符串比较常见的四种判断是否为空的性能优化比较
- JAVA读取超大文件内容并处理写到另外文件中
- java工具类文件重命名
- java通过InputStream读取和写入文件操作实例代码
- java获取文件的大小,文件夹下的文件个数
请下载代码后再发表评论
相关代码
最近下载
gwl LV8
2020年9月3日
2293778908 LV12
2019年4月18日
xuzhicheng111 LV18
2018年2月9日
duofuge LV1
2017年8月11日
dagf113225 LV68
2017年8月6日
alexbrandon LV1
2017年7月31日
听雨落声 LV2
2016年8月23日
2010211122 LV15
2016年6月23日
qq773152 LV3
2015年12月4日
流浪者 LV29
2015年11月20日
最近浏览
神龙摆尾无拘束 LV2
2023年3月17日
912727849 LV3
2021年8月5日
xb1406112453 LV5
2021年3月20日
味卜鲜码 LV6
2020年8月14日
KKnight LV1
2020年6月20日
zhangshuang1
2020年6月11日
暂无贡献等级
346675489 LV2
2020年5月31日
wlfzuidaima LV1
2020年5月8日
放开那个难海纸 LV22
2019年9月30日
菜鸟真的是菜 LV8
2019年9月19日