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系统 

java对比IO和NIO的文件读写性能测试的更多相关文章

  1. java byte【】数组与文件读写(增加新功能)

    今天在测试直接写的文章: java byte[]数组与文件读写 时,想调用FileHelper类对字节数组以追加的方式写文件,结果无论怎样竟然数据录入不全,重新看了下文件的追加模式,提供了两种方式: ...

  2. JAVA中IO和NIO的详解分析,内容来自网络和自己总结

    用一个例子来阐释: 一辆客车上有10个乘客,他们的目的地各不相同,当没有售票员的时候,司机就需要不断的询问每一站是否有乘客需要下车,需要则停下,不需要则继续开车,这种就是阻塞的方式. 当有售票员的时候 ...

  3. 2018.10.16 Java的IO与NIO

    IO流学习总结 一 Java IO,硬骨头也能变软 二 java IO体系的学习总结 三 Java IO面试题 NIO与AIO学习总结 一 Java NIO 概览 二 Java NIO 之 Buffe ...

  4. java的nio之:java的nio系列教程之java的io和nio的区别

    当学习了Java NIO和IO的API后,一个问题马上涌入脑海: 我应该何时使用IO,何时使用NIO呢?在本文中,我会尽量清晰地解析Java NIO和IO的差异.它们的使用场景,以及它们如何影响您的代 ...

  5. 面试(Java之IO与NIO)

    一.概念 NIO即New IO,这个库是在JDK1.4中才引入的.NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO高很多.在Java API中提供了两套N ...

  6. 传统IO与NIO(channel-to-channel)文件拷贝的探索与性能比对

    Channel-to-channel传输是可以极其快速的,特别是在底层操作系统提供本地支持的时候.某些操作系统可以不必通过用户空间传递数据而进行直接的数据传输.对于大量的数据传输,这会是一个巨大的帮助 ...

  7. list集合、txt文件对比的工具类和文件读写工具类

    工作上经常会遇到处理大数据的问题,下面两个工具类,是在处理大数据时编写的:推荐的是使用map的方式处理两个list数据,如果遇到list相当大数据这个方法就起到了作用,当时处理了两个十万级的list, ...

  8. java使用新的(nio)遍历文件(支持文件后缀名、文件名正则表达式匹配)

    import org.junit.Test; import java.io.IOException; import java.nio.file.Files; import java.nio.file. ...

  9. java byte【】数组与文件读写

    此文全文参考http://blog.csdn.net/sniffer_wang/article/details/7455701,自己加以改进应用,谢了 import java.io.ByteArray ...

随机推荐

  1. Oracle Escape

    select * from tablewhere col like '%\_'escape'\'

  2. lua-resty-r3 高性能 OpenResty 路由实现

    大家下午好!首先做下自我介绍,我于 2014 年加入奇虎 360,后与温铭结识,当时他正在基于 OpenResty 做天擎服务端,用于提供 API 服务.2015 年我们一起写了< OpenRe ...

  3. (水题)洛谷 - P1022 - 计算器的改良

    https://www.luogu.org/problemnew/show/P1022 服了,居然还有+0.000和-0.000的不同,真的服了. #include<bits/stdc++.h& ...

  4. C++笔试题库之编程、问答题 200~300道

    201下面的代码有什么问题?并请给出正确的写法. void DoSomeThing(char* p) { char str[16]; int n; assert(NULL != p); sscanf( ...

  5. bzoj 3160: 万径人踪灭【FFT+manacher】

    考虑正难则反,我们计算所有对称子序列个数,再减去连续的 这里减去连续的很简单,manacher即可 然后考虑总的,注意到关于一个中心对称的两点下标和相同(这样也能包含以空位为对称中心的方案),所以设f ...

  6. 统计Apache或nginx日志里访问次数最多的前十个IP

    1.根据访问IP统计UV awk '{print $1}' access.log|sort | uniq -c |wc -l 2.统计访问URL统计PV awk '{print $7}' access ...

  7. 密码(Password)

    #include<cstdio> #include<cstring> using namespace std; int k, cnt; ][][], ans[]; bool d ...

  8. android 启动报错

    报错如下: AAPT err(Facade for 1532009679): libpng error: Read Error Error:Execution failed for task ':ap ...

  9. [洛谷4329/COCI2006-2007#1] Bond

    Description Everyone knows of the secret agent double-oh-seven, the popular Bond (James Bond). A les ...

  10. [已读]JavaScript面向对象编程指南

    又是一个忽悠人的书名,其实这本书的花了大量内容阐述JS的基础语法,BOM,DOM,事件,ajax(这个和很多js书一样).最后一章则是编程模式与设计模式. 我觉得与面向对象没多大关系,要算的话,pro ...