我想提出一個看似簡單的問題,我無法找到答案無處。 是否有FAST用於文件輸入和/或輸出的現代算法,可以使用所有符合標準的C++編譯器進行編譯,適用於所有操作系統,無需外部庫?快速跨平臺算法讀取/寫入文件在C + +
- 我發現,最快的方法就是使用內存映射文件,但不會做的原因,我們希望在所有平臺上的工作
- 我們不能使用API,如Win32 API中的同一段代碼因爲這將使它具體的平臺
- 我不想使用c,我希望算法只是純粹的C++代碼與STL如果可行的話,不是一些醜陋的c與混合asm hack/trick
- 框架或外部不屬於標準C++的庫不應該像wxWidgets,Qt,MFC等一樣使用。
- 大這整個問題的empasis是,該算法是FAST成爲可能,隨着內存映射文件做它的速度線的東西,甚至更快的將是巨大的,但我知道這是不可能的
你有沒有見過除我以外的其他人研究過的東西? 這樣的算法甚至可能嗎?
感謝您的任何建議
同意。唯一的C++標準文件I/O來自標準庫,即。頭文件''或''。如果你想要快速的文件I/O,最重要的是**不**一次讀取/寫入一個字節的文件,而是一次讀取/寫入大塊。 –
stakx
2010-01-26 00:47:10
可以用iostream一次讀取整個文件嗎?那會提供性能優勢,我不這麼認爲?不是cstdio的c頭? – user258883 2010-01-26 01:02:51
一次讀取整個文件仍然比映射到內存慢。 – 2010-01-26 01:11:35