atitit.高性能遍历 文本文件行 attilax总结
来源:互联网 发布:罗斯生涯数据 编辑:程序博客网 时间:2024/06/04 20:13
atitit.高性能遍历 文本文件行 attilax总结
文件读写有以下几种常用的方法 1
通常io读取2.5s 1
nio读取或许越高的.. 2
NIO通常采用Reactor模式,AIO通常采用Proactor模式 2
Java对BIO、NIO、AIO的支持: 2
BIO、NIO、AIO适用场景分析: 3
文件读写有以下几种常用的方法
1、字节读写(InputStream/OutputStream)
2、字符读取(FileReader/FileWriter)
3、行读取(BufferedReader/BufferedWriter)
文件大小:110m
行::55w
作者:: 老哇的爪子 Attilax 艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://blog.csdn.net/attilax
通常io读取2.5s
public static void main(String[] args) {
//SubstanceSaharaLookAndFeel
long t1=new Date().getTime();
filex fx=new filex();
fx.readPerLine("e:\\ui.rar.txt", "gbk", new ScannerLineFilter4mail());
System.out.println("--f");
//List<String> li = filex.read2list_filtEmptyNstartSpace("c:\\em.txt");
System.out.println(new Date().getTime()-t1);
}
public class ScannerLineFilter4mail implements Closure {
int n=0;
@Override
public Object execute(Object arg0) throws Exception {
n++;
if(n%10000==0)
System.out.println("-----:"+n);
// System.out.println(arg0);
return null;
}
nio读取或许越高的..
结果之一:NIO花费时间大概是BIO的三分之一少一点。(from site)
NIO通常采用Reactor模式,AIO通常采用Proactor模式
。AIO简化了程序的编写,stream的读取和写入都有OS来完成,不需要像NIO那样子遍历Selector。Windows基于IOCP实现AIO,Linux只有eppoll模拟实现了AIO。
Java7之前的JDK只支持NIO和BIO,从7开始支持AIO。
Java对BIO、NIO、AIO的支持:
·
Java BIO : 同步并阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,当然可以通过线程池机制改善。
·
·
Java NIO : 同步非阻塞,服务器实现模式为一个请求一个线程,即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求时才启动一个线程进行处理。
·
·
Java AIO(NIO.2) : 异步非阻塞,服务器实现模式为一个有效请求一个线程,客户端的I/O请求都是由OS先完成了再通知服务器应用去启动线程进行处理,
·
BIO、NIO、AIO适用场景分析:
·
BIO方式适用于连接数目比较小且固定的架构,这种方式对服务器资源要求比较高,并发局限于应用中,JDK1.4以前的唯一选择,但程序直观简单易理解。
·
·
NIO方式适用于连接数目多且连接比较短(轻操作)的架构,比如聊天服务器,并发局限于应用中,编程比较复杂,JDK1.4开始支持。
·
·
AIO方式使用于连接数目多且连接比较长(重操作)的架构,比如相册服务器,充分调用OS参与并发操作,编程比较复杂,JDK7开始支持。
·
Java NIO 系列教程 - 特约稿件 - ITeye精华.htm
Java NIO和BIO 统计文件行数性能对比 - 开源中国社区.htm
BIO, NIO, AIO(转) - 赵磊的博客 - ITeye技术网站.htm
Java BIO、NIO、AIO 学习 - 力量来源于赤诚的爱! - 51CTO技术博客.htm
Java NIO 系列教程 - 特约稿件 - ITeye精华.htm
- atitit.高性能遍历 文本文件行 attilax总结
- Atitit 遍历文件夹算法 autoit attilax总结
- Atitit.遍历图像像素点rgb java attilax总结
- Atitit 大json文件的结构化查看解决方案,高性能的jsonview attilax总结.docx
- atitit.LimeSurvey 安装 attilax 总结
- Atitit 软件工程概览attilax总结
- Atitit 转移特效attilax总结
- Atitit 财政支出学习心得 attilax总结
- Atitit diy战略 attilax总结
- Atitit 分期理论 attilax总结
- Atitit.软件架构高扩展性and兼容性原理与概论实践attilax总结
- Atitit.数据库事务隔离级别 attilax 总结
- atitit.资源释放机制--attilax总结
- atitit.项目设计模式---ioc attilax总结
- Atitit.jquery 版本新特性attilax总结
- Atitit.常用分区api的attilax总结
- Atitit. Derby的使用总结attilax
- Atitit。Web server Jetty9 使用 attilax 总结
- OkHttp使用教程
- MS SQLServer 2000数据库管理内容提要
- 第4周项目2分数类的雏形
- 多线程测试
- iOS:圆锥 AngleGradientLayer
- atitit.高性能遍历 文本文件行 attilax总结
- C# 串口操作系列(4) -- 协议篇,文本协议数据解析
- ul标签的高度为0
- 神奇的反射技术
- route命令参数详解,linux添加删除路由命令
- 集合使用案例--扑克牌斗地主
- javascript闭包
- iOS绘图教程
- 什么是软连接和硬链接(Linux)