虛擬內存、虛擬光驅

應用場景:

我們開發板內存可用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的資源對內存進行壓縮,以便在小內存設備裏也能存下更多的後臺進程,是個很不錯的方法。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章