作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
/proc/mem 中有很多字段:我知道我不能只取“MemFree”,因为实际上缓存了很多内存。那么问题来了,如何计算可用内存量?
假设:
最佳答案
如果如您所说,系统配置为没有交换空间,则可以通过添加/proc/meminfo 中的“MemFree”、“Buffers”和“Cached”值来计算可用内存量。
这正是命令“free -m”在“-/+ buffers/cache”行的“free”下显示的内容。
在 Python 中,我将按如下方式实现:
with open('/proc/meminfo', 'rt') as f:
vals = {}
for i in f.read().splitlines():
try:
name, val = i.split(':')
vals[name.strip()] = int(val.split()[0])
except:
pass
memfree = vals['MemFree'] + vals['Buffers'] + vals['Cached']
这将给出一个以千字节为单位的值。
正如其他人所说,malloc 永远不可能返回 null。 Linux 会过度分配,当您开始使用确实无法找到的页面时,OOM killer 就会启动。
关于linux - 在 linux 上,我应该如何根据/proc/mem 中的信息计算空闲内存量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1460248/
我是一名优秀的程序员,十分优秀!