【问题标题】:Find memory leaks when extending python with C使用 C 扩展 python 时发现内存泄漏
【发布时间】:2015-01-12 16:39:03
【问题描述】:

我写了一些 C 代码来创建一个 python 模块。我自己编写了代码(没有使用 SWIG 等)。如果您有兴趣,C 代码位于this 线程的底部。

问:有什么方法可以(希望很容易)找到我的 C 代码是否存在内存泄漏?有什么方法可以利用 python 的强大功能在其扩展中发现内存泄漏?

【问题讨论】:

  • 如果在 Linux 上 -> valgrind
  • sys.getrefcount(some_object) 有助于快速进行健全性检查(例如,确保您不会意外地意外增加输入对象的引用计数)——但它不能替代像 valgrind 这样的泄漏检测工具。
  • 已回答的类似问题。 stackoverflow.com/questions/3982036/…

标签: python c python-2.7 memory-management memory-leaks


【解决方案1】:

如果您使用 linux 环境,我们可以使用名为 valgrind 的调试器轻松找到内存泄漏。 要首先获取 valgrind,您必须使用命令从 Internet 安装它

sudo apt-get valgrind

安装完成后,使用此调试器编译您的 c 代码,您可以轻松找到内存泄漏。此调试器显示内存泄漏的原因,并指定发生泄漏的行。

【讨论】:

    猜你喜欢
    • 2019-07-16
    • 1970-01-01
    • 2018-04-08
    • 2010-09-25
    • 2018-05-30
    • 1970-01-01
    • 2011-07-27
    • 2012-07-31
    • 2018-05-19
    相关资源
    最近更新 更多