Linux

Linux釋放記憶體

  • November 21, 2012

如果我的程序分配了一些大記憶體然後釋放,top 或 gnome-system-monitor 是否會顯示我的程序的記憶體使用量減少了?還是核心仍會為該程序保留該記憶體?

我看到的是我正在釋放記憶體。但我仍然看到 gnome-system-monitor 為我的程序顯示不斷增長的記憶體。我最終沒有發現記憶體洩漏。我想知道它是否不顯示釋放的記憶體?或者我真的有記憶體洩漏?

您的問題似乎是基於物理記憶體和虛擬記憶體之間的混淆。正常的記憶體分配從不保留物理記憶體——核心總是可以自由地使用它最有用的物理記憶體。而且由於虛擬記憶體很便宜,所以沒有理由關心它是否保持保留。

通常,虛擬記憶體將保持保留狀態,因為努力歸還它是沒有意義的。物理記憶體從一開始就沒有被保留,所以沒有什麼可做的。

引用自:https://serverfault.com/questions/450927