首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法用tracemalloc &guppy&mem_top& pympler查找python中的内存泄漏位置

无法用tracemalloc &guppy&mem_top& pympler查找python中的内存泄漏位置
EN

Stack Overflow用户
提问于 2022-10-12 07:05:44
回答 1查看 30关注 0票数 0

这四个包已经检测到python占据了大约400 3GB,但是当我使用'top -d 1‘时,就会发现它占用了将近3GB的空间!有没有更精确的方法来找出内存泄漏在哪里?

更多信息如下:

代码语言:javascript
复制
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND   
15881 root      20   0 5206548   3.1g  32960 S   0.0   4.9 334:13.48 python3   


                        types |   # objects |   total size
============================= | =========== | ============
                         dict |      653590 |    234.98 MB
                          str |      791447 |    116.25 MB
  guppy.sets.setsc.ImmNodeSet |         895 |     47.54 MB
                          int |     1286323 |     36.75 MB
                        tuple |      167646 |     14.07 MB
                         list |        5116 |      6.03 MB
                        bytes |       77163 |      5.50 MB
                         code |       38540 |      5.32 MB
                         type |        5814 |      5.31 MB
                          set |        2039 |    959.21 KB
                      weakref |       10108 |    868.66 KB
                  abc.ABCMeta |         408 |    417.58 KB
            getset_descriptor |        5273 |    411.95 KB
                         cell |        7029 |    384.40 KB
          function (__init__) |        2519 |    354.23 KB
EN

回答 1

Stack Overflow用户

发布于 2022-10-12 09:27:09

哦,天哪,记忆泄露很难处理

假设这是linux系统,可以从下面开始,看看是否可以隔离大内存区域(PID 15881)。

代码语言:javascript
复制
sudo pmap 15881

假设你确定了一个大面积

代码语言:javascript
复制
..
0000558f3f556000 4507556K rw---   [ anon ]
..

为了得到范围

代码语言:javascript
复制
sudo cat /proc/15881/maps

例如

代码语言:javascript
复制
558f3f556000-559052762000 rw-p 00000000 00:00 0     [heap]

使用gdb将该区域附加并转储为文件。

代码语言:javascript
复制
sudo gdb --pid 15881
(gdb) dump memory /tmp/mem.dump 0x558f3f556000 0x559052762000

浏览/tmp/mem.dump文件-检查经常出现的部件

代码语言:javascript
复制
strings /tmp/mem.dump

恐惧需要一个熟悉你的python应用程序的人来弄清楚

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74037703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档