私のコードは:
int linenumber = File.ReadLines(path).Count();
ただし、1ギガ程度のサイズのファイルの場合、長い時間(約20秒)がかかります。
誰でもこの問題を解決するためのより良い方法を知っていますか?
更新 6 :
私はあなたのソリューションをテストしました:
約 870 mb サイズのファイルの場合:
方法 1: { my code time(seconds) : 13}
方法 2 : (からMarcinJuraszek & Locke) (同じ) {
time(seconds) : 12}
方法 3 : (からRichard Deeming) { time(seconds) : 19}
方法 4 : (からuser2942249) { time(seconds) : 13}
方法 5 : (from Locke) {time(seconds) : 13は同じlineBuffer = {4096 , 8192 , 16384 , 32768} }
方法 6 : (からLocke edition 2) { time(seconds) : 9 for Buffer size = 32KB, time(seconds) : 10 for Buffer size = 64KB }
私が言ったように、私のコメントでは、native code私のPCでこのファイルを開くアプリケーション()があります5 second。したがって、これはnot about h.d.d speedです。
By Compiling MSIL to Native Code、違いwas not obvious。
Conclusion:この際、他の方法よりも送料Locke method 2がかかります。faster
だから私は彼の投稿を としてマークしましたAnswer。しかし、この投稿は、もしあれば開かれますfind better idea。
vote up私を助けてくれる親愛なる友人に+1を与えましたto solve the problem。
ご協力いただきありがとうございます。興味深いより良いアイデア。よろしくスマートマン