【问题标题】:Is there a way to monitor heap usage in C++/MacOS?有没有办法监控 C++/MacOS 中的堆使用情况?
【发布时间】:2010-10-05 04:02:58
【问题描述】:

我担心我的某些代码会导致内存泄漏,我不确定如何检查它。有适用于 MacOS X 的工具吗?

谢谢

【问题讨论】:

    标签: c++ macos memory-leaks heap-memory


    【解决方案1】:

    是的 - 有一个名为 MallocDebug 的应用程序作为 Xcode 包的一部分安装。

    您可以在/Developer/Applications/Performance Tools 文件夹中找到它。

    【讨论】:

      【解决方案2】:

      Apple 在其开发人员页面上对如何在 OS X 上使用 MallocDebug 进行了很好的描述。

      【讨论】:

        【解决方案3】:

        当然,UNIX 提供了一种快速而肮脏的方法来检测内存泄漏......顶部。

        启动您的应用并观察一段时间内分配给您的进程的系统内存。如果它在不应该的时候持续增长,那么可能存在内存泄漏。此时你突破Valgrind或使用MallocDebug等。

        当然,如果您使用智能指针和/或 RAII,那么您的代码中不应该出现内存泄漏,对吧? ;)))

        【讨论】:

        • 是的,事实上我正在尝试检查我的智能指针实现是否正常工作:)
        • 有什么理由不使用 boost::scoped_ptr 或 boost::shared_ptr ??
        【解决方案4】:

        解决内存错误、泄漏等问题的最佳工具是 Valgrind。开始使用here。你不需要在你的代码中做任何特别的事情,这将报告内存的分配位置(带有完整的堆栈跟踪,即使在 C 中也是如此)。此外,它还会检测对已释放内存的写入、未初始化的内存使用情况等等。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-03-15
          • 1970-01-01
          • 2016-07-18
          • 1970-01-01
          • 2020-01-04
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多