最代码广告位
miral的gravatar头像
miral2013-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下载
最代码最近下载分享源代码列表最近下载
2293778908 LV122019年4月18日
月亮月亮月亮
xuzhicheng111 LV182018年2月9日
太阳星星星星
duofuge LV12017年8月11日
星星
dagf113225 LV682017年8月6日
皇冠月亮
alexbrandon LV12017年7月31日
星星
听雨落声 LV22016年8月23日
星星星星
2010211122 LV152016年6月23日
月亮月亮月亮星星星星星星
qq773152 LV22015年12月4日
星星星星
流浪者 LV292015年11月20日
太阳月亮月亮月亮星星
sihuidan LV12015年8月27日
星星
最代码最近浏览分享源代码列表最近浏览
s002182 LV202019年9月30日
太阳月亮
菜鸟真的是菜 LV72019年9月19日
月亮星星星星星星
msgamma LV22019年6月17日
星星星星
theo凡白 LV12019年6月2日
星星
xsm1234 LV22019年5月16日
星星星星
ljkfdsjh LV22019年5月15日
星星星星
2293778908 LV122019年4月18日
月亮月亮月亮
cdpcdp LV172019年1月30日
太阳星星
uuu1210 LV92019年1月8日
月亮月亮星星
wmjwh007 LV12018年12月12日
星星
顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友