我已经看过一些关于在Python程序中分析内存使用情况的问题,但到目前为止还没有能够解决任何问题。我的程序必须以root身份运行(它会打开一个TUN / TAP设备)。
首先,我尝试heapy
;不幸的是,这对我不起作用。每当我的代码尝试执行hpy().heap()
时,程序就会冻结。不想浪费太多时间我决定尝试valgrind。
我尝试了valrigind with massif:
# valgrind --tool=massif ./my_prog.py --some-options value
我认为这个问题与分析Python程序有关。我尝试了我的程序(以root身份运行)并且没有生成massif输出文件。我也无法使用另一个Python程序(不以root身份运行)生成输出文件。但是,一个简单的C测试程序工作正常并生成了massif文件。
阻止Valgrind和massif正确使用Python程序的问题是什么?
答案 0 :(得分:6)
不是让脚本启动解释器,而是直接将其作为Valgrind的参数来解决问题。
valgrind --tool=massif python my_script.py