mmap()與讀取塊我正在開發(fā)一個處理文件的程序,該程序的大小可能是100 GB或更大。這些文件包含一組可變長度的記錄。我已經(jīng)啟動并運行了第一個實現(xiàn),并且現(xiàn)在正在尋求提高性能,特別是提高I/O的效率,因為輸入文件被掃描了很多次。有什么使用的經(jīng)驗法則嗎?mmap()通過C+實現(xiàn)對塊的讀取fstream圖書館?我想要做的是將大塊從磁盤讀入緩沖區(qū),從緩沖區(qū)處理完整的記錄,然后讀取更多。這個mmap()代碼可能會變得非?;靵y,因為mmap代碼塊需要位于頁面大小的邊界上(據(jù)我理解),記錄可能會跨越頁面邊界。fstreamS,我可以先開始記錄,然后再開始閱讀,因為我們不局限于閱讀位于頁面大小邊界上的塊。我怎樣才能在這兩個選項之間做出決定,而不首先編寫一個完整的實現(xiàn)呢?任何經(jīng)驗法則(例如,mmap()是快2倍)還是簡單的測試?
添加回答
舉報
0/150
提交
取消