如果我的进程分配了一些大内存然后又释放,top 或 gnome-system-monitor 是否会显示该进程的内存使用量减少了?或者内核仍会为该进程保留该内存?
我看到的是我正在释放内存。但我仍然看到 gnome-system-monitor 显示我的程序内存正在增加。我没有发现我的程序有内存泄漏。我想知道它是否没有显示释放的内存?或者我的程序确实有内存泄漏?
答案1
您的问题似乎是基于对物理内存和虚拟内存的混淆。正常内存分配绝不保留物理内存——内核总是可以自由地在最需要的地方使用物理内存。而且由于虚拟内存很便宜,所以没有必要关心它是否被保留。
通常情况下,虚拟内存将保持保留状态,因为没有必要努力将其归还。物理内存从一开始就没有被保留,因此无事可做。