4

Windows アプリでメモリ リークを見つけようとしているときに、 gflagsの問題が発生しました。

(メモリ割り当てスタック トレースを収集するために) ustフラグをオンにすると、アプリケーションのメモリは、フラグがオフの場合よりもはるかに速く増加します (約 10 分で 800MB に達します。これは 50 からはほど遠いです)。フラグがオフの場合、100MB/日を取得します)。

スタック トレースの最大値は 32MB であると読んだので、これは問題にはならないと思います。

コンピューターは、4x Intel(R) Xeon(R) CPU E5410 @ 2.33GHzです。

誰かが私にヒントを与えることができれば、本当に感謝しています。

ありがとうございました!

4

2 に答える 2

4

ust フラグの影響は、スタック トレース データベースだけではありません。また、スタック トレース ID を格納するために、各割り当てに少なくとも 32 バイトを追加します。多くの小さな割り当てが関係している場合、これはメモリの増加を説明する可能性があります。アタッチされたデバッガーを使用してプロセスを起動するか、デバッグ ターゲットを使用してプロセスをコンパイルすると、Windows ヒープがデバッグ モードに設定され、割り当てごとのオーバーヘッドがさらに大きくなります。

于 2010-02-25T18:10:52.413 に答える
1

/tracedb SizeInMB を使用してトレース データベースの最大サイズを設定できます。章と節については、 MSDN Gflags のドキュメントを参照してください。デフォルトでは、あなたが見た動作を説明する可能性が最も高い最大サイズはありません.

于 2009-12-04T15:19:14.703 に答える