- 首先安装
memory_profiler
模块,如果没有安装可以使用pip install memory_profiler
。
- 编写代码如下:
from memory_profiler import profile
@profile
def generate_large_list():
large_list = list(range(1000000))
return large_list
if __name__ == "__main__":
generate_large_list()
- 分析结果信息:
- 峰值内存使用:从分析结果中可以看到函数执行过程中的峰值内存使用量,这能帮助我们了解创建包含100万个整数的列表所需要的最大内存。在这个简单示例中,列表中每个整数占用一定的内存空间(具体取决于系统和Python版本,例如在64位系统中,一个整数通常占用8字节),100万个整数的列表会占用相对较大的内存。
- 内存增长趋势:可以观察到随着列表的生成,内存是如何逐步增加的。在生成列表的过程中,内存使用量会随着列表元素的不断添加而上升,直到列表完全生成达到峰值。
- 内存释放情况:如果在函数结束后内存使用量显著下降,说明Python的垃圾回收机制正常工作,及时回收了函数执行过程中不再使用的内存。但如果内存没有及时释放或者存在内存泄漏问题,可能会看到内存使用量一直保持在较高水平。