gpt4 book ai didi

c++ - 我可以使用什么工具来分析内存使用情况?

转载 作者:可可西里 更新时间:2023-11-01 09:38:28 25 4
gpt4 key购买 nike

关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。












想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。

7年前关闭。




Improve this question




我有一个使用 C++ 使用 Visual Studio 2008 编写的 Windows 应用程序。我想获取有关内存使用情况的统计信息,以找到处理内存使用情况的瓶颈和位置。理想情况下,我希望有一个工具可以做到这一点,而无需进入并向代码本身添加计数器/分析逻辑。基本上我正在寻找的是:

  • 所有分配的列表(释放与否无关紧要,每次分配时我都想知道)
  • 每次分配的调用堆栈和一个计数器,表示调用代码和分配内存的次数。
  • 有关已释放与未释放内存的信息(以查找泄漏)。理想情况下,它足够智能,可以确定内存是否仍在使用中或是否真的泄漏(通过作用域或其他一些智能机制)。

  • 我不在乎它是否是免费工具。以下是我已经看过的一些工具:
  • Rational PurifyPlus : 老实说,我一直无法充分利用这个工具。它返回了很多误报。此外,它没有给我上面列表中的前 2 个项目,它似乎只关注内存错误和泄漏。
  • Sysinternals VMMap :这个工具很有趣,可以让我看到内存是如何分布的(堆栈、堆、共享堆等)。它还让我看到分配的调用树,但不是很直观或没有帮助。很难从数据中理解。
  • 开发伙伴边界检查器 : 我真的觉得这是目前最没用的工具。几年前我在他们被 DevPartner 收购之前使用过它,我记得它工作得更好。但它并没有真正给我我需要的统计数据,它似乎也不能正确检测内存泄漏。

  • 我提前感谢任何帮助/建议。我的应用程序是一个服务器,在压力测试期间随着时间的推移会遇到严重的内存增长问题(最终由于虚拟字节超过 32 位应用程序的限制而崩溃)。拥有正确的工具将帮助我隔离分配内存的位置以及可能泄漏内存的位置。

    最佳答案

    在我的工作地点,我们使用 Software Verification's Memory Validator .它将为您提供各种内存统计信息、分配列表、每个分配的调用堆栈和内存泄漏。事实证明,它在我的工作经验中偶尔有用。

    关于c++ - 我可以使用什么工具来分析内存使用情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12167074/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com