微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python 解释器是否将内存返回给操作系统?

如何解决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

结果:

enter image description here

那么python解释器是否将内存返回给操作系统?

解决方法

memory_profiler 显示正在运行的代码的资源使用情况,而不是解释器的资源使用情况。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。