Discussion:
ダイアログボックス
(too old to reply)
PAPA
2007-06-15 00:16:03 UTC
Permalink
Windows XP SP2 Visual C++6.0 SP6 MFC
でプログラムを作成しています。

ダイアログボックス(DoModalを使用)を開いて閉じる
を繰り返していると、タスクマネージャに表示される
メモリ使用量がだんだん増えていきます。
メモリーリークを起しているようです。

原因や対策を教えてください。
よろしくお願いいたします。
UETA, Shin-ichi
2007-06-15 02:48:31 UTC
Permalink
こんにちは、植田です。
Post by PAPA
ダイアログボックス(DoModalを使用)を開いて閉じる
を繰り返していると、タスクマネージャに表示される
メモリ使用量がだんだん増えていきます。
メモリーリークを起しているようです。
まず、現象を再現可能な最低限のコードと、メモリ使用量の
具体的な増加量を示していただかないと適切なアドバイスは
できませんよ。

ところで、タスクマネージャの「メモリ使用量」を以ってして
メモリリークであると断じるのは早計かもしれません。
これが示すのは「ワーキングセット」と呼ばれる、物理メモリの
割り当て量であって、コミットされた仮想メモリの総バイト数を
示すわけではありません。
この値は状況によって大きく変動します。

# たとえば、アプリケーションのウィンドウを最小化すると、
# がくっと小さくなります。

また、仮想メモリを解放しても、コミットが解除されるまでには
タイムラグがあるかもしれません。

WindowsやMFCを疑う前に、ご自身のコードをよく確認して
みましょう。MFCであれば、プログラム終了時に、開放されて
いないオブジェクトをIDEの出力ウィンドウにダンプするはず
なので、まずはそこからチェックしてみてください。

詳しいことは下記ドキュメントをご覧あれ。

MFC におけるメモリ リークの検出
http://msdn2.microsoft.com/ja-jp/library/c99kz476(VS.80).aspx
(VC8のドキュメントですが基本的なことはVC6でも同じです)
メモリ リークの検出と特定
http://msdn.microsoft.com/library/ja/jpdnvc60/htm/MemLeaks.asp
--
植田システム設計事務所
Ueta System Design Studio
http://www.usdesign.jp/
植田真一
mailto:***@usdesign.jp
PAPA
2007-06-18 00:02:00 UTC
Permalink
植田さん。

本当に、ありがとうございます。
早速、デバックをやり直してみます。
Post by UETA, Shin-ichi
こんにちは、植田です。
Post by PAPA
ダイアログボックス(DoModalを使用)を開いて閉じる
を繰り返していると、タスクマネージャに表示される
メモリ使用量がだんだん増えていきます。
メモリーリークを起しているようです。
まず、現象を再現可能な最低限のコードと、メモリ使用量の
具体的な増加量を示していただかないと適切なアドバイスは
できませんよ。
ところで、タスクマネージャの「メモリ使用量」を以ってして
メモリリークであると断じるのは早計かもしれません。
これが示すのは「ワーキングセット」と呼ばれる、物理メモリの
割り当て量であって、コミットされた仮想メモリの総バイト数を
示すわけではありません。
この値は状況によって大きく変動します。
# たとえば、アプリケーションのウィンドウを最小化すると、
# がくっと小さくなります。
また、仮想メモリを解放しても、コミットが解除されるまでには
タイムラグがあるかもしれません。
WindowsやMFCを疑う前に、ご自身のコードをよく確認して
みましょう。MFCであれば、プログラム終了時に、開放されて
いないオブジェクトをIDEの出力ウィンドウにダンプするはず
なので、まずはそこからチェックしてみてください。
詳しいことは下記ドキュメントをご覧あれ。
MFC におけるメモリ リークの検出
http://msdn2.microsoft.com/ja-jp/library/c99kz476(VS.80).aspx
(VC8のドキュメントですが基本的なことはVC6でも同じです)
メモリ リークの検出と特定
http://msdn.microsoft.com/library/ja/jpdnvc60/htm/MemLeaks.asp
--
植田システム設計事務所
Ueta System Design Studio
http://www.usdesign.jp/
植田真一
Loading...