幾種IO讀檔案效能對比

2022-09-10 20:24:25 字數 3419 閱讀 9384

檔案大小19m,10萬行左右的資料。堆記憶體設定如下:

一,nio,無記憶體溢位,耗時220毫秒左右。缺點是實現起來太複雜,要考慮漢字等。

package

myweb.test.nio;

import

j**a.io.file;

import

j**a.io.fileinputstream;

import

j**a.io.ioexception;

import

j**a.io.randomaccessfile;

import

j**a.nio.bytebuffer;

import

j**a.nio.channels.filechannel;

import

j**a.util.arraylist;

import

j**a.util.arrays;

import

j**a.util.date;

import

j**a.util.list;

public

class

nioreadfile1

//if(fcout.isopen())

}

public

static

void readfilebyline(int

bufsize, filechannel fcin,

bytebuffer rbuffer, filechannel fcout, bytebuffer wbuffer)

else

} }

if(haslf)

else

} if(temp != null && temp.length > 0)

} catch

(ioexception e)

} /*** 寫到檔案上

二,bio使用buffer,180毫秒左右竟然是最高效,**最簡潔的方式。

package

myweb.test.nio;

import

j**a.io.bufferedinputstream;

import

j**a.io.bufferedoutputstream;

import

j**a.io.bufferedreader;

import

j**a.io.datainputstream;

import

j**a.io.dataoutputstream;

import

j**a.io.file;

import

j**a.io.fileinputstream;

import

j**a.io.fileoutputstream;

import

j**a.io.ioexception;

import

j**a.io.inputstreamreader;

import

j**a.util.arraylist;

import

j**a.util.list;

public

class

ofoldio1

if(read!=null

)

long end =system.currenttimemillis();

system.out.print(end-begin);//

測試執行時間

三,scanner,慘不忍睹。

package

myweb.test.nio;

import

j**a.io.fileinputstream;

import

j**a.io.filenotfoundexception;

import

j**a.io.ioexception;

import

j**a.util.arraylist;

import

j**a.util.list;

import

j**a.util.scanner;

public

class

scannerreadfile

if (sc.ioexception() != null

) }

finally

if (sc != null

) }

long end =system.currenttimemillis();

system.out.print(end-begin);//

測試執行時間

四,commonio,與nio類似。

package

myweb.test.nio;

import

j**a.io.file;

import

j**a.io.ioexception;

import

org.apache.commons.io.fileutils;

import

org.apache.commons.io.lineiterator;

public

class

commonioreadfile

} finally

long end =system.currenttimemillis();

system.out.print(end-begin);//

測試執行時間

Go語言寫檔案幾種方式效能對比

go語言中寫檔案有多種方式,這裡進行如下幾種方式的速度對比 在vmware下的ubuntu 14.04下執行的結果表明 測試 如下 package main import fmt os time func benchmarkfilewrite filename string,n int,index ...

python效能對比

1 coding utf8 import datetime road nodes for i in range 5000000 road nodes i beg time datetime.datetime.now for key,val in road nodes.items pass end t...

SSD效能對比

ssd效能測試 順序寫 16k iops 85061.08 順序寫 8k iops 146250.93 順序寫 4k iops 239816.69 順序寫 2k iops 294540.87 順序寫 1k iops 347170.06 隨機寫 16k iops 21865.24 隨機寫 8k iop...