在使用Valgrind对Python程序进行内存分析时遇到问题
我看了一些关于在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