共享記憶體對映和占用記憶體關係

2022-04-01 11:18:28 字數 724 閱讀 9147

demo測試

對映檔案1g

1 對映1次,1寫,進行memset操作,共享記憶體佔1g

2 對映2次,1寫,1讀,單執行緒

1) 1寫,進行memset操作,讀無操作,共享記憶體佔1g

2) 1寫,進行memset操作,讀某個指定位置字元(len/2或len-1位置),共享記憶體佔1g

3) 1寫,進行memset操作,for迴圈從0-len讀取字元,共享記憶體佔2g

4) 1寫,進行memset操作,for迴圈從0-len/2讀取字元,共享記憶體佔1.5g

2 對映3次,1寫,2讀,單執行緒

1) 1寫,進行memset操作,讀無操作,共享記憶體佔1g

2) 1寫,進行memset操作,讀某個指定位置字元(len/2或len-1位置),共享記憶體佔1g

3) 1寫,進行memset操作,兩個讀對映: for迴圈從0-len讀取字元,共享記憶體佔3g

4) 1寫,進行memset操作,兩個讀對映:for迴圈從0-len/2讀取字元,共享記憶體佔2g

5) 1寫,進行memset操作,乙個讀對映:for迴圈從0-len/2讀取字元,另乙個讀對映:for迴圈從0-len讀取字元,共享記憶體佔2.5g

3 對映3次,1寫,2讀,共享記憶體操作都在工作執行緒中操作,主線程無操作

1) 1寫,進行memset操作,兩個讀對映: for迴圈從0-len讀取字元,共享記憶體佔3g

結論:共享記憶體和對映次數、對映後使用情況存在關係

資料共享,記憶體對映檔案和虛擬記憶體,共享記憶體

記憶體對映檔案允許開發人員預定一塊位址空間區域並給區域調撥物理儲存器。記憶體對映檔案的物理儲存器來自磁碟已有的檔案,而不是來自系統的頁交換檔案。一旦把檔案對映到位址空間,就可以對它進行訪問,就好像整個檔案都已經被載入記憶體一樣。不必再對檔案執行i o操作。使用記憶體對映檔案來顛倒檔案內容時,先開啟檔...

檔案讀寫,共享記憶體和mmap記憶體對映

1傳統的檔案讀寫,需要將磁碟上的資料copy到檔案緩衝區 為了避免對磁碟的反覆讀寫 都在核心空間,然後找到檔案的inode,先去檔案緩衝區中找有沒有這個檔案,如果沒有的話,到磁碟再到檔案緩衝區。2.共享記憶體是兩個程序同時開闢出一塊虛擬位址空間,對映到同一塊物理記憶體上 3.記憶體對映是虛擬位址上直...

記憶體對映檔案實現共享記憶體

記憶體對映檔案程序間共享記憶體 記憶體對映檔案的另乙個功能是在程序間共享資料,它提供了不同程序共享記憶體的乙個有效 且簡單的方法。後面的許多例子都要用到共享記憶體。共享記憶體主要是通過對映機制實現的。windows 下程序的位址空間在邏輯上是相互隔離的,但在物理上卻是重疊的。所謂的重 對映檔案物件時...