- 虛擬內存技術
-
內存映射文件技術
虛擬內存技術:
虛擬內存技術是根據系統頁面文件(pagefile.sys)進行頁面交換達到切換內存的目的。但是究其本質,我們會發現,虛擬內存技術本質上還是通過對頁面文件的交換達到提高物理內存的使用效率問題。
目前在這裏先不詳談虛擬內存使用技術。
內存映射文件技術:
內存映射文件技術是通過將文件內容映射到內存空間中,從而實現以下三種目的:
- 加載和執行DLL或EXE程序;
- 不使用文件系統IO和緩存來訪問磁盤上的數據文件;
-
進程之間相互進行通信;
那麼,我們在這裏介紹內存映射文件主要是對目的2來滿足我們在物理內存不足的情況下完成內存的使用。
內存映射文件的基本使用步驟如下:
- 創建/打開一個文件。CreateFile
- 在這個文件上創建一個文件映射內核對象。CreateFileMapping
- 將文件映射內核對象的全部或者部分映射到當前進程的進程空間中。MapViewOfFile
- 步驟3會得到內存指針,直接操作指針即可。
- 在退出前從內存空間中撤銷文件映射內核對象的映射。UnmapViewOfFile
- 關閉文件映射內核對象。CloseHandle
- 關閉數據文件。CloseHandle