如何解决Python 解释器是否将内存返回给操作系统?
更新。 memory_profiler 显示正在运行的代码的资源使用情况,而不是解释器。
我想弄清楚 python 解释器是否将内存返回给操作系统。我读到一些 Python 进程会保持内存分配,稍后将其用于新数据。但是 memory_profiler 显示正在返回内存。我很困惑。
我这样做:
memprof.py
import time
from memory_profiler import profile
def func2():
lst = list(range(1_000_000))
time.sleep(10)
@profile()
def func1():
lst = list(range(1_000_000))
func2()
time.sleep(10)
if __name__ == '__main__':
aa = func1()
运行:
mprof run memprof.py
输出:
Line # Mem usage Increment Occurences Line Contents
============================================================
11 38.3 MiB 38.3 MiB 1 @profile()
12 def func1():
13 77.0 MiB 38.6 MiB 1 lst = list(range(1_000_000))
14 77.3 MiB 0.3 MiB 1 func2()
15 77.3 MiB 0.0 MiB 1 time.sleep(10)
要查看基于时间的内存使用情况,请运行:
mprof plot
结果:
那么python解释器是否将内存返回给操作系统?
解决方法
memory_profiler 显示正在运行的代码的资源使用情况,而不是解释器的资源使用情况。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。