只需使用MSVC++ input.getline()來讀取一個非常大的(3GB)分隔文本文件之前,我想以優化速度,增加輸入緩衝區的大小:在執行時增加緩衝提高了ifstream.getline()在C++中的最高速度嗎?
ifstream input("in1.txt");
input.rdbuf()->pubsetbuf(NULL, 1024 * 1024);
然而,代碼,速度沒有提高,所以我想知道:
- 代碼有什麼問題?
- 緩衝是否適用於ifstream.getline?
- 分配給ifstream的默認緩衝大小是多少?
問候。
的[什麼是高性能順序文件I/O在C++?最快的方法]可能重複(http://stackoverflow.com/questions/1201261/what-is-the-fastest-method-for-high -performance-sequential-file-io-in-c)和[最快的方法來逐行讀取字符串的文本文件](http://stackoverflow.com/questions/9356216/fastest-way-to-read-a字符串一行一行的文本文件) – 2012-02-23 21:18:32