【问题标题】:output garbage from windbg heap summary从windbg堆摘要输出垃圾
【发布时间】:2011-04-05 18:37:17
【问题描述】:

首先,我的英语不好。 非常抱歉。我不住在英语区。

我有一个问题。

我正在处理 Windows 服务器程序的内存碎片。 因为内存不足不能运行超过一周。 可能有问题。

所以,我以前通过windbg 对'.heap -s address(heap handle) 命令进行堆内存分析。 但我不明白这份报告。看看吧。

       0:023> !heap -s 0x01490000
       Walking the heap 0000000001490000 ...........
       0: Heap 0000000001490000

       -- Omitted --

       Flags          00001002 - HEAP_GROWABLE 
       Reserved memory in segments              1047616 (k)
       Commited memory in segments              617812 (k)
       Virtual bytes (correction for large UCR) 188152 (k)
       Free space                               549 (k) (25 blocks)
       External fragmentation          0% (25 free blocks)
       Virtual address fragmentation   1254577998% (3 uncommited ranges)
       Virtual blocks  32 - total 0 KBytes
       Lock contention 1
       Segments        11

虚拟地址碎片有垃圾值。 有什么问题??值对吗??

我已经计划好了。试图验证性能改进。另外,确定是否有问题。但不能,因为这个问题。

我尝试搜索多种文章。但我无法获得有用的信息。

请帮帮我。

首先,为什么会这样?

第二,更有效地使用内存的方法是什么?

可能,你看我的帖子很难。我知道。真的很抱歉。

感谢您阅读我的帖子。

【问题讨论】:

    标签: c++ memory-management windbg memory-fragmentation


    【解决方案1】:

    如果您怀疑内存泄漏,那么UMDH 是一个很好的工具。这是一个免费工具,MSDN 上有很好的文档。这将允许您在 allocs/deallocs 上获取调用堆栈,并准确查看哪些调用堆栈正在泄漏,前提是您有完整的符号。

    【讨论】:

    • +1,必须使用正确的工具。否则,你只会迷惑自己。
    【解决方案2】:

    Windbg heap 命令有时会出错,尤其是在跟踪大量泄漏时。 要检查内存碎片,您最好使用 Vmmap http://technet.microsoft.com/en-us/sysinternals/dd535533

    您将从 Vmmap 报告中找出可疑的内存位置。 然后使用 Windbg 查看这些分配的内容。

    【讨论】:

      【解决方案3】:

      为了分析内存碎片问题,我通常使用 DebugDiag。官方版本为 1.1,但如果您使用 Windows 7 或 Windows Server 2008,则需要 1.2 测试版,可在http://viisual.net/Tools/ (source) 获得。

      最近,我发现我可以使用 Windbg 的“!address”命令给我一个完整的进程地址空间转储。通过将其放入 Excel 电子表格,将所有十六进制值转换为二进制并执行一些 max/sum 函数,我可以快速找出可用的最大连续块有多少与未分配的空间有多少,这很好地表明了如何碎片化程度很高。我没有尝试过,但是有了那个内存映射,理论上你可以找出坏片段并检查内存内容。

      这些建议中的任何一个都不会告诉您碎片是如何发生的。下次我一定会尝试 nithins 建议的 UMDH 工具。

      【讨论】:

        猜你喜欢
        • 2015-11-05
        • 2014-12-18
        • 1970-01-01
        • 1970-01-01
        • 2018-09-12
        • 2013-12-30
        • 2011-01-26
        • 2022-07-28
        • 2023-03-20
        相关资源
        最近更新 更多