0
當我們談論內存映射文件,一般提到文件的一部分可以被映射到進程的地址空間,我們可以使用指針等做就可以了隨機訪問。我也在很多地方讀過,我應該有足夠的內存來容納整個文件到內存中。現在這些是兩個有點讓我感到困惑的陳述,因爲如果我們需要足夠的內存來存儲整個文件,那麼會比優勢更好?我知道有關的內容或時間快額外內核空間複製的好處是數據不會被讀取的塊或字節讀取如流等的情況下內存映射文件V/S的普通文件IO
當我們談論內存映射文件,一般提到文件的一部分可以被映射到進程的地址空間,我們可以使用指針等做就可以了隨機訪問。我也在很多地方讀過,我應該有足夠的內存來容納整個文件到內存中。現在這些是兩個有點讓我感到困惑的陳述,因爲如果我們需要足夠的內存來存儲整個文件,那麼會比優勢更好?我知道有關的內容或時間快額外內核空間複製的好處是數據不會被讀取的塊或字節讀取如流等的情況下內存映射文件V/S的普通文件IO
你並不需要有存儲整個文件 - MMAP是懶加載,所以好處是你可以修改一個大文件而不必使用大量的內存。另一個巧妙的訣竅是如果你必須反覆迭代它而不必大塊。