2

まず、私の英語は苦手です。ごめんなさい。私は英語圏に住んでいません。

質問があります。

Windowsサーバープログラムのメモリ断片化を行っています。メモリ不足のため、1 週間以上実行できません。それは問題かもしれません。

そこで、windbg で '.heap -s address(ヒープハンドル)' コマンドでメモリ解析をヒープしていました。しかし、私はこのレポートを理解していません。それを見てください。

       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

仮想アドレスの断片化にはガベージ値があります。どうしたの??適正値ですか??

計画しました。パフォーマンスの向上を検証しようとしました。また、問題があるかどうかを判断します。しかし、この問題があるため、できません。

いろいろな記事を検索してみました。しかし、有益な情報を得ることができませんでした。

私を助けてください。

まず、なぜそれが起こったのですか?

第二に、メモリをより効果的に使用するための方法はありますか?

たぶん、あなたは私の投稿を読んで難しいです。知っている。本当に本当にごめんなさい。

私の投稿を読んでくれてありがとう。

4

3 に答える 3

3

メモリ リークが疑われる場合、使用する優れたツールはUMDHです。これは無料のツールで、MSDN に優れたドキュメントがあります。これにより、allocs/deallocs のコールスタックを取得し、完全なシンボルがあれば、どのコール スタックがリークしているかを正確に確認できます。

于 2011-03-10T04:25:09.333 に答える
1

Windbg ヒープ コマンドは、特に大量のリークを追跡する場合にバグが発生することがあります。メモリの断片化を調べるには、Vmmap http://technet.microsoft.com/en-us/sysinternals/dd535533を使用することをお勧めします

Vmmap レポートから疑わしいメモリの場所を特定します。次に、Windbg を使用して、これらの割り当ての内容を表示します。

于 2011-04-05T10:37:17.807 に答える
0

メモリの断片化の問題を分析するには、通常は DebugDiag を使用します。公式バージョンは 1.1 ですが、Windows 7 または Windows Server 2008 を使用している場合は、バージョン 1.2 ベータ版が必要です。これはhttp://viisual.net/Tools/ ( source ) で入手できます。

最近、Windbg の「!address」コマンドを使用して、プロセスのアドレス空間の完全なダンプを取得できることを知りました。これを Excel スプレッドシートに入力し、すべての 16 進数値をバイナリに変換し、いくつかの max/sum 関数を実行すると、使用可能な最大連続ブロックと未割り当て領域の量をすばやく確認できます。多くの断片化があります。私はこれを試していませんが、そのメモリ マップを使用すると、理論的には、不良フラグメントを見つけてメモリ コンテンツを調べることができます。

これらの提案のいずれも、断片化がどのように発生したかを示していません。次回は nithins が提案した UMDH ツールを試してみます。

于 2011-03-17T23:40:31.040 に答える