atitit.高性能遍历 文本文件行 attilax总结

atitit.

文件读写有以下几种常用的方法

1

2

3

文件大小:110m

行::55w

作者::老哇的爪子Attilax艾龙,EMAIL:1466519819@qq.com

转载请注明来源:

通常

publicstaticvoidmain(String[]args){

//SubstanceSaharaLookAndFeel

longt1=newDate().getTime();

filexfx=newfilex();

fx.readPerLine("e:\\ui.rar.txt","gbk",newScannerLineFilter4mail());

System.out.println("–f");

System.out.println(newDate().getTime()-t1);

}

publicclassScannerLineFilter4mailimplementsClosure{

intn=0;

@Override

publicObjectexecute(Objectarg0)throwsException{

n++;

if(n%10000==0)

System.out.println("—–:"+n);

//System.out.println(arg0);

returnnull;

}

nio读取或许越高的..

结果之一:NIO花费时间大概是BIO的三分之一少一点。(fromsite)

NIO

。AIO简化了程序的编写,stream的读取和写入都有OS来完成,不需要像NIO那样子遍历Selector。Windows基于IOCP实现AIO,Linux只有eppoll模拟实现了AIO。

Java7之前的JDK只支持NIO和BIO,从7开始支持AIO。

·

JavaBIO:同步并阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,当然可以通过线程池机制改善。

·

·

JavaNIO:同步非阻塞,服务器实现模式为一个请求一个线程,即客户端发送的连接请求都会注册到多路复用器上,,多路复用器轮询到连接有I/O请求时才启动一个线程进行处理。

·

·

JavaAIO(NIO.2):异步非阻塞,服务器实现模式为一个有效请求一个线程,客户端的I/O请求都是由OS先完成了再通知服务器应用去启动线程进行处理,

·

BIO、NIO、AIO适用场景分析:

·

BIO方式适用于连接数目比较小且固定的架构,这种方式对服务器资源要求比较高,并发局限于应用中,JDK1.4以前的唯一选择,但程序直观简单易理解。

·

·

NIO方式适用于连接数目多且连接比较短(轻操作)的架构,比如聊天服务器,并发局限于应用中,编程比较复杂,JDK1.4开始支持。

·

·

AIO方式使用于连接数目多且连接比较长(重操作)的架构,比如相册服务器,充分调用OS参与并发操作,编程比较复杂,JDK7开始支持。

·

JavaNIO

JavaNIO

BIO,NIO,AIO

JavaBIO

JavaNIO

所有的赏赐都只是被用来奖励工作成果的。

atitit.高性能遍历 文本文件行 attilax总结

相关文章:

你感兴趣的文章:

标签云: