小编Dmi*_*riy的帖子

通过tracemalloc模块查找python中的内存泄漏

我有一个 python 脚本,它使用开源 pytorch 模型,并且此代码存在内存泄漏。我用 memory_profiler 运行它mprof run --include-children python my_sctipt.py并得到以下图像:menory_profiler图

我正在尝试通过系统python模块tracemalloc搜索泄漏的原因:

tracemalloc.start(25)
while True:
    ...
    snap = tracemalloc.take_snapshot()
    domain_filter = tracemalloc.DomainFilter(True, 0)
    snap = snap.filter_traces([domain_filter])
    stats = snap.statistics('lineno', True)
    for stat in stats[:10]:
        print(stat)
Run Code Online (Sandbox Code Playgroud)

如果仅查看tracemalloc 输出,我将无法识别问题。我认为问题出在 C 扩展中,但是我想确保这是真的。我尝试通过 DomainFilter 更改域,但我仅在 0 域中输出。

另外,我不明白所获得的参数的含义tracemalloc.start(frameno),frameno是最近帧的数量,但是当我更改它时没有任何反应。

接下来我该怎么做才能找到代码中导致内存泄漏的有问题的地方?

期待您的答复。

python memory-leaks pytorch

2
推荐指数
1
解决办法
4350
查看次数

标签 统计

memory-leaks ×1

python ×1

pytorch ×1