python申请内存函数 python申请内存空间( 二 )


内存占用由397MB降低到297MB , 释放了100MB内存占用 。
说明:将None赋值给对象mem后,mem对象的引用计数即为0,此时垃圾回收启动,释放mem对象占用的内存 。
4 系统总内存、占用内存检测
由于需要设定内存占用百分比,故需要获取系统总物理内存和占用内存 。本文使用的方法是读取系统文件“/proc/meminfo”,从中解析出总内存大小以及当前内存占用大小等内存相关的信息 。该文件内容格式如下图所示:
代码片段如下所示:
f = open("/proc/meminfo")
lines = f.readlines()
f.close()
for line in lines:
if len(line) 2:continue
name = line.split(':')[0]
var = line.split(':')[1].split()[0]
mem[name]= long(var)* 1024.0
mem['MemUsed']= mem['MemTotal']- mem['MemFree']
说明:按行读取meminfo文件内容,创建字典对象mem,将meminfo文件第一列设置为mem对象的键值,将meminfo文件第二列数字设置为mem对象的值 。
5 获取用户输入百分比
通过读取键盘输入字符串,然后转换为数字实现接收用户输入的百分比,代码如下所示:
input_str=raw_input("Input UsedMemory`s Rate or q to exit:")
rate=float(input_str)
注意:此处键盘输入的都是字符串,需要进行字符串转换为数字,使用float()或long()函数进行转换 。
6 动态设置内存占用百分比测试
测试使用两个Python脚本文件,分别是test.py和mem_rate.py,其功能分别是查看当前内存占用和动态设定内存占用百分比 。如下图所示:
注意:上述两个文件需要使用“chmod +x *.py”修改为可执行属性 。
6.1 查看当前内存占用
查看当前内存占用百分比,使用上述test.py文件,运行命令为“./test.py”,运行结果如下图所示:
当前使用内存为320MB,占用百分比为17% 。
6.2 动态设置内存占用百分比
动态设置内存占用百分比使用上述mem_rate.py脚本,注意该脚本文件第一行代码为“#!/usr/bin/python2.6”,表示该脚本使用python2.6程序运行 。该行需要修改为待运行Linux系统中Python实际的安装程序路径 。
动态内存百分比设置界面如下图所示:
处于待输入状态 。另外显示了当前内存占用(321MB) , 总内存大?。?869MB)以及内存占用百分比(17%) 。
如果此时设置内存占用百分比为80%,则脚本会每次申请10MB空间,直至内存占用接近或等于80%为止 。如下图所示:
内存申请过程如下图所示:
内存申请过程中占用百分比变化为:35%,45%,56%,70% , …
mem_rate.py运行过程如下图所示:
内存申请过程中占用变化为:1461MB,1471MB , 1481MB , 1491MB 。
此时如果内存占用百分比设置为20%,则需要释放一部分内存 。
test.py脚本运行过程如下图所示:
由于释放内存运行较快,抓取到最后结果
【python申请内存函数 python申请内存空间】内存占用为20% 。
mem_rate.py脚本运行过程如下图所示:
内存释放过程中内存占用为:413MB , 403MB,393MB,383MB,最后内存占用稳定在20%,383MB 。
输入“q”或“Q”退出内存占用百分比设定过程,如下图所示:
此时内存占用如下图所示:
内存占用恢复到运行mem_rate.py脚本之前状态,17%,321MB 。
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
附:完整Python脚本代码
test.py
------------------------------------------------------------------------------------------------
#!/usr/bin/python2.6
def memory_stat():
mem = {}
f = open("/proc/meminfo")

推荐阅读