mmap()與讀取塊我正在開發(fā)一個(gè)處理文件的程序,該程序的大小可能是100 GB或更大。這些文件包含一組可變長度的記錄。我已經(jīng)啟動(dòng)并運(yùn)行了第一個(gè)實(shí)現(xiàn),并且現(xiàn)在正在尋求提高性能,特別是提高I/O的效率,因?yàn)檩斎胛募粧呙枇撕芏啻?。有什么使用的?jīng)驗(yàn)法則嗎?mmap()通過C+實(shí)現(xiàn)對塊的讀取fstream圖書館?我想要做的是將大塊從磁盤讀入緩沖區(qū),從緩沖區(qū)處理完整的記錄,然后讀取更多。這個(gè)mmap()代碼可能會變得非常混亂,因?yàn)閙map代碼塊需要位于頁面大小的邊界上(據(jù)我理解),記錄可能會跨越頁面邊界。fstreamS,我可以先開始記錄,然后再開始閱讀,因?yàn)槲覀儾痪窒抻陂喿x位于頁面大小邊界上的塊。我怎樣才能在這兩個(gè)選項(xiàng)之間做出決定,而不首先編寫一個(gè)完整的實(shí)現(xiàn)呢?任何經(jīng)驗(yàn)法則(例如,mmap()是快2倍)還是簡單的測試?
請問mmap()與讀取塊
婷婷同學(xué)_
2019-09-02 08:04:00