在使用Valgrind对Python程序进行内存分析时遇到问题

4 投票
1 回答
1806 浏览
提问于 2025-04-16 19:55

我看了一些关于在Python程序中监测内存使用情况的问题,但到目前为止还没有找到有效的方法。我的程序必须以root身份运行(因为它需要打开一个TUN/TAP设备)。

首先,我试了试heapy,但不幸的是,这对我来说没用。每次我的代码尝试执行hpy().heap()时,程序就会卡住。为了不浪费太多时间,我决定试试valgrind。

我用massif来试了valgrind:

# valgrind --tool=massif ./my_prog.py --some-options value

我觉得问题和监测Python程序有关。我试了我的程序(以root身份运行),但没有生成massif输出文件。我还尝试了另一个不以root身份运行的Python程序,也没有生成输出文件。不过,一个简单的C语言测试程序运行得很好,成功生成了massif文件。

是什么问题导致Valgrind和massif在Python程序中无法正常工作呢?

1 个回答

10

与其让脚本去启动解释器,不如直接把解释器作为参数传给Valgrind,这样就能解决问题了。

valgrind --tool=massif python my_script.py

撰写回答