我正在撰写一个 Python 扩展,但似乎存在内存泄漏问题。我尝试使用 Valgrind 找出问题的源头。
然而,根据 Valgrind 的显示,Python 本身也存在内存泄漏问题。下面是一个简单的脚本:hello.py。
然而,根据 Valgrind 的显示,Python 本身也存在内存泄漏问题。下面是一个简单的脚本:hello.py。
print "Hello World!"
并且执行
> valgrind --tool=memcheck python ./hello.py
(...)
==7937== ERROR SUMMARY: 580 errors from 34 contexts (suppressed: 21 from 1)
==7937== malloc/free: in use at exit: 721,878 bytes in 190 blocks.
==7937== malloc/free: 2,436 allocs, 2,246 frees, 1,863,631 bytes allocated.
==7937== For counts of detected errors, rerun with: -v
==7937== Use --track-origins=yes to see where uninitialised values come from
==7937== searching for pointers to 190 not-freed blocks.
==7937== checked 965,952 bytes.
==7937==
==7937== LEAK SUMMARY:
==7937== definitely lost: 0 bytes in 0 blocks.
==7937== possibly lost: 4,612 bytes in 13 blocks.
==7937== still reachable: 717,266 bytes in 177 blocks.
==7937== suppressed: 0 bytes in 0 blocks.
==7937== Rerun with --leak-check=full to see details of leaked memory.
有人能解释这种奇怪的行为吗?Python解释器真的会泄漏内存吗?
Python开发者使用什么工具来调试他们的内存泄漏问题?