miral的gravatar头像
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系统

java对比IO和NIO的文件读写性能测试

2.NIO系统

java对比IO和NIO的文件读写性能测试


最代码官方编辑于2015-10-15 9:40:51


打赏

文件名:FileCopy.java,文件大小:1K 下载
最代码最近下载分享源代码列表最近下载
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日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友