• 締切済み

プロセスの使用している仮想メモリ量について

はじめまして。 現在作成中のプログラムで仮想メモリの使用量が増加していく現象が発生しています。これは、Windows2000のパフォーマンスモニタを利用して発見したものです。 そこで、仮想メモリの使用量を調べるためにWindowsAPI関数を調べているのですが、システム全体のメモリ使用量等がわかるGlobalMemoryStatus関数があることは分かりました。 システム全体ではなく、特定のプロセスの仮想メモリ使用量がわかる関数または手法をご存知の方は教えてください。 よろしくお願いします。

みんなの回答

noname#25358
noname#25358
回答No.1

 プログラム側からはたしか、リアルメモリと仮想メモリの区別は付かなかったんじゃなかったでしたっけ。でないと仮想「メモリ」である意味がありませんから。自信なし。  で、この質問の回答ではありませんが、その現象は十中八九メモリリークです。  「アロックしたままフリーしてない」とか「内部でアロックするAPIを呼び、そのままフリーしてない」といったような部分が、おそらくはあるはずです。  それらを一度全部見直してみてください。  Win32 API の中には、構造上、「アロックはするけどフリーはしない」関数が山のようにありますので。

Tatinori
質問者

お礼

回答、ありがとうございました。 GlobalMemoryStatus関数で取得できるMEMORYSTATUS構造体の情報のdwTotalVirtual値とdwAvailVirtual値からプロセスの使用している仮想メモリ値を算出できるとのことでした。 これからもよろしくお願いします。

関連するQ&A