使用 Valgrind 在 Python 程序中分析内存时遇到问题
Posted
技术标签:
【中文标题】使用 Valgrind 在 Python 程序中分析内存时遇到问题【英文标题】:Having problems profiling memory in Python program using Valgrind 【发布时间】:2011-06-20 15:46:06 【问题描述】:我已经查看了一些关于在 Python 程序中分析内存使用情况的问题,但到目前为止还没有任何工作可以解决。我的程序必须以 root 身份运行(它会打开一个 TUN/TAP 设备)。
首先,我尝试了heapy
;不幸的是,这对我不起作用。每次我的代码尝试执行hpy().heap()
时,程序都会冻结。不想浪费太多时间,我决定尝试 valgrind。
我用地块尝试了 valgrind:
# valgrind --tool=massif ./my_prog.py --some-options value
我认为这个问题与分析 Python 程序有关。我尝试了我的程序(以 root 身份运行)并且没有生成任何地块输出文件。我也无法使用另一个 Python 程序(不以 root 身份运行)生成输出文件。但是,一个简单的 C 测试程序运行良好并生成了 massif 文件。
阻碍 Valgrind 和 massif 与 Python 程序正常工作的问题是什么?
【问题讨论】:
调用 python bin 并将脚本作为参数传递会有什么不同吗? @tMC,在我阅读您的评论之前,我也在想同样的事情。事实上,它确实有所作为。 【参考方案1】:无需让脚本启动解释器,而是直接将其作为参数调用到 Valgrind 即可解决问题。
valgrind --tool=massif python my_script.py
【讨论】:
以上是关于使用 Valgrind 在 Python 程序中分析内存时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章