Pau*_*ulD 7 debugging heap environment-variables visual-studio-2012
我的程序的初始阶段将大量数据加载到STL容器中.我发现需要几分钟时间才能达到程序的真正含量.
经过一番搜索,我发现我可以在我的VS2012配置属性 - >调试 - >环境变量中设置_NO_DEBUG_HEAP == 1 ...关闭Windows调试堆的利用率.这使我的调试速度提高了10倍.我还没有找到任何描述我这样做失去了什么调试功能.
总结:使用Windows调试堆完成了哪些检查以及生成了哪些调试信息?
谢谢.
调试堆通过两种方式影响性能:
首先,它在堆操作期间添加了对堆完整性的检查。我还没有找到有关这些检查的详细信息,但假设在每次分配或释放时,它都涉及验证用于管理堆的数据结构的完整性。
其次,它禁用低碎片堆 (LFH) 选项。在发布版本中,默认情况下您会获得 LFH。在调试版本中,除非您使用 _NO_DEBUG_HEAP,否则您不需要。这不一定是速度损失,但也可能是。
的文档中有一些线索HeapSetInformation。
请注意,C 和 C++ 运行时库提供构建在系统堆 API 之上的内存管理,并且它们还具有可能影响性能的调试和非调试模式。有关于调试 CRT 功能的更详细文档。您可以检查并查看关闭 CRT 调试是否足以显着提高性能,而不会扰乱进程堆的调试模式。
| 归档时间: |
|
| 查看次数: |
3567 次 |
| 最近记录: |