C++ 调试堆的大规模减速

C++ 调试堆的大规模减速,c++,windows,memory,msvcrt,C++,Windows,Memory,Msvcrt,我在使用调试器启动中间件时遇到了x8性能下降的问题 不同之处在于调试器使用调试堆,这是一个标准堆(HeapQueryInformation给出0),而“标准”运行使用(HeapQueryInformation给出2) 现在,我知道我可以使用_NO_debug_HEAP环境变量强制Visual使用LFH进行调试,但我怀疑中间件中存在代码问题(分配太多、间接寻址太多、使用boost::shared_ptr和std::map…)。因此: 是否有任何工具/方法/任何东西可以帮助识别此类瓶颈 我无法说服

我在使用调试器启动中间件时遇到了x8性能下降的问题

不同之处在于调试器使用调试堆,这是一个标准堆(
HeapQueryInformation
给出0),而“标准”运行使用(
HeapQueryInformation
给出2)

现在,我知道我可以使用_NO_debug_HEAP环境变量强制Visual使用LFH进行调试,但我怀疑中间件中存在代码问题(分配太多、间接寻址太多、使用boost::shared_ptr和std::map…)。因此:

  • 是否有任何工具/方法/任何东西可以帮助识别此类瓶颈
  • 我无法说服中间件公司重构他们的整个代码=),但是有没有“简单”的技巧,比如自定义分配器(nedmalloc?)可以帮助我

谢谢

那么,你想要快速调试堆还是什么?是的,我不明白这个问题。你能更具体地告诉我们你想要我们解决什么问题吗?我想我想要一个工具,可以分析应用程序的内存行为,并说“这很糟糕,因为XXX”。或者,更一般地说,关于如何处理这类问题的建议。或者:帮我找到正确的问题。因为我很难理解这一点。你用剖析器而不是调试器来剖析一个程序。使用正确的工具。