2010-07-09 49 views
0

是否可以在不丟棄交換的情況下分配大塊(安裝有4Gb的512Mb-1Gb)的實際內存?強制分配實際內存

我最終的意圖是釋放系統內存:當可用內存接近0時,os x有問題 - 它不會盡力將未使用的內存交換,並且一切都變得非常緩慢,試圖獲取內存。所以,我決定如果某個進程以強制的方式獲取某些內存(我佔用系統總內存的1/8至1/4),並且將其釋放,那麼系統將再次負責。 我寫了創建小Ruby腳本和填充的內存磁盤(hdiutil是我發現搶使用外部utils的實際內存的唯一途徑),現在我決定只使用C.

+0

另請參閱http://stackoverflow.com/questions/14157002/can-calloc-or-malloc-be-used-to-allocate-only-physical-memory-in-osx – Nickolay 2013-06-18 23:27:18

回答

2

mlock功能將頁面鎖定在重寫一遍物理內存。我不確定限制是什麼。

你應該非常肯定你真的想這樣做。這對系統的其他部分來說不是一件好事。

+0

已經找到閱讀man pages :)但對於某個人來說,找到答案會更容易。我會解釋爲什麼我這樣做是有問題的。 – tig 2010-07-09 12:12:28

+2

啊。另請參見/ usr/bin/purge。它不會做同樣的事情,但它通常會釋放大量的內存。 – Ken 2010-07-09 12:58:52

+0

哎唷!清除是很難的,它運作良好(它釋放了大約1Gb的未使用的內存),但它令人不快地完全凍結了系統20-30秒。雖然感謝您分享知識! – tig 2010-07-09 13:21:21