應用場景:
我們開發板記憶體可用1000m左右,
我的程式使用malloc分配576m,執行沒問題;
分配768m(記憶體使用會達到850m)時,會發生oom,我的程式會被系統殺死。
有啥辦法讓我能夠分配大致900m的記憶體呢?
方案:zram(也稱為 zram,先前稱為 compcache)是linux核心的一項功能,可提供虛擬記憶體壓縮。zram 通過在 ram 內的壓縮塊裝置上分頁,直到必須使用硬碟上的交換空間,以避免在磁碟上進行分頁,從而提高效能。由於 zram 可以用記憶體替代硬碟為系統提供交換空間的功能,zram 可以在需要交換 / 分頁時讓 linux 更好利用 ram ,在物理記憶體較少的舊電腦上尤其如此。
zram 在 2009 年的時候就進了 kernel 的 staging 目錄
zram可以分出一塊記憶體,然後讓系統當作虛擬記憶體來使用。傳統的虛擬記憶體是存放在磁碟上的,而zram存在記憶體裡,並會進行壓縮。這樣的虛擬記憶體訪問速度可以提高很多,記憶體利用率也會大幅提高。所以對於小記憶體裝置,比如512m記憶體的android裝置,或者1g記憶體的電腦,都會有很大幫助。應該和os x 10.9的記憶體壓縮效果差不多,而且設計得更為巧妙。在cpu有較快速度的年代裡,利用cpu的資源對記憶體進行壓縮,以便在小記憶體裝置裡也能存下更多的後台程序,是個很不錯的方法。
linux 虛擬光碟機
1 掛載iso檔案 一般檢視iso檔案內容,只需要 mount t iso9660 o loop iso mnt cdrom 就可以在 mnt cdrom下看到 iso的內容。2 複製光碟為iso映象 dd if dev hdb of iso 或者 cp dev cdrom iso 3 虛擬iso為...
1 映象 虛擬光碟機 光碟機
映象是一種檔案儲存形式,是一種冗餘的一種型別,乙個磁碟上的資料在另乙個磁碟上存在乙個完全相同的副本即為映象。可以把許多檔案做成乙個映象檔案,還可以恢復成許多檔案。所謂的映象檔案 虛擬光碟機是一類軟體的總稱,它們的用處是 系統下模擬出1個光碟機。但光碟機並不是真實存在,卻可以和真的光碟機一樣工作。因為...
Windows api實現 虛擬光碟機
我在注釋裡已經大致講了每個引數的作用。這裡只作些必要的補充。lpfilename 在這裡用的是 minicd 這個是裝置的符號名。是在驅動裡使用iocreatesymboliclink 建立的。主要用於使用者層程式訪問驅動用的。注 符號名稱和裝置名是不同的 從iocreatesymboliclink...