Memory

程序是否可以分配高速記憶體,以便核心在必要時可以佔用它?

  • November 22, 2017

我專門詢問Linux,但顯然,適用於一般Unix(即POSIX或類似)的答案會更好。

Linux 使用空閒記憶體(即尚未分配給程序的記憶體)來記憶體文件系統元數據(可能還有其他內容)。當程序請求額外的記憶體時,這些記憶體會縮小以騰出空間。

我的問題:有沒有一種方法可以讓應用程序分配僅用作記憶體的記憶體?也就是說,當可用記憶體不足並且其他程序的記憶體分配無法提供服務時,核心被允許以某種方式控制該記憶體區域,從而進行分配。

您也許可以為此使用madvise(2)’s MADV_FREE— 它將頁面標記為可回收,但不一定立即刪除它們,並且可以讀回數據。如果你得到全零(每頁),你就會知道頁面已經消失了。

引用自:https://unix.stackexchange.com/questions/406390