linux - 程序退出后回收内存

标签 linux linux-kernel memory-management

这是我的问题:运行一组程序后,free 告诉我执行后大约有 1 GB 可用内存。经过一些搜索,我找到了 SO: What really happens when you dont free after malloc这(据我了解)清楚地表明缺少内存释放不应该是问题...(正确吗?)

top 没有显示任何使用大量内存的进程。

我如何找出内存“发生了什么”,即哪个程序分配了它以及为什么它在程序执行后 不可用?

free 在哪里收集信息?

(我正在运行最新的 Ubuntu 版本)

最佳答案

是的,您的程序使用的内存在您的程序退出后被释放。

“free”中的统计数据令人困惑,但事实是内存可供其他程序使用:

http://kevinclosson.wordpress.com/2009/11/17/linux-free-memory-is-it-free-or-reclaimable-yes-when-i-want-free-memory-i-want-free-memory/

http://sourcefrog.net/weblog/software/linux-kernel/free-mem.html

这是一个更好的事件链接:

http://www.linuxatemyram.com/

关于linux - 程序退出后回收内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7193650/

相关文章:

linux - 删除大量文件

iphone - 有多少 iPhone 应用程序可以在 Linux 上开发和测试?

PHP,更改目录不起作用

arrays - MATLAB 如何处理动态数组分配?

交叉编译找不到crt1.o

linux-kernel - 为什么 `pstore` 不适用于三星 S10 5G?

c - 内核中[inittest]的优势是什么

linux - 为什么 kmalloc() 比 vmalloc() 更高效?

java - 在 Java 中重用具有常量后缀的字符串的最佳实践

iphone - 如何获取App中没有的图片