python获取自己写的一个程序占用的内存

使用psutil.Process(os.getpid()).memory_info().rss在程序开始和结束的时候相减,最后得出的内存远小于实际消耗得内存,还有没有别的方法检测内存,只需要得到程序运行完毕后一共消耗了多少内存,最好不影响程序运行速度得情况下得到内存信息,不需要每行程序消耗内存,要总内存。

img


vms和rss得区别是什么


import psutil
before_info = psutil.virtual_memory()
# 运行程序
after_info = psutil.virtual_memory()
# 计算程序运行消耗的内存
memory_used = after_info.used - before_info.used
print('程序运行消耗的内存:', memory_used)

1.vms和rss是两种不同的内存衡量方式
2.vms (Virtual Memory Size):表示该进程所占用的虚拟内存,包括该进程加载的可执行文件、动态链接库、数据段等。rss (Resident Set Size):表示该进程占用的物理内存,它是实际在内存中的一个子集。
3.如果你希望得到实际消耗的内存,可以使用rss来衡量
4.如果你觉得使用psutil的方法有误差,可以尝试使用其他的内存检测工具,例如memory-profiler、Pympler等。同时,如果你希望在程序运行时不影响程序运行速度,可以使用tracemalloc模块,它可以在程序运行的同时进行内存分析,而不需要频繁的检测内存消耗。