プロが教える店舗&オフィスのセキュリティ対策術

はじめまして。

現在作成中のプログラムで仮想メモリの使用量が増加していく現象が発生しています。これは、Windows2000のパフォーマンスモニタを利用して発見したものです。

そこで、仮想メモリの使用量を調べるためにWindowsAPI関数を調べているのですが、システム全体のメモリ使用量等がわかるGlobalMemoryStatus関数があることは分かりました。

システム全体ではなく、特定のプロセスの仮想メモリ使用量がわかる関数または手法をご存知の方は教えてください。

よろしくお願いします。

A 回答 (1件)

 プログラム側からはたしか、リアルメモリと仮想メモリの区別は付かなかったんじゃなかったでしたっけ。

でないと仮想「メモリ」である意味がありませんから。自信なし。

 で、この質問の回答ではありませんが、その現象は十中八九メモリリークです。
 「アロックしたままフリーしてない」とか「内部でアロックするAPIを呼び、そのままフリーしてない」といったような部分が、おそらくはあるはずです。
 それらを一度全部見直してみてください。

 Win32 API の中には、構造上、「アロックはするけどフリーはしない」関数が山のようにありますので。
    • good
    • 0
この回答へのお礼

回答、ありがとうございました。

GlobalMemoryStatus関数で取得できるMEMORYSTATUS構造体の情報のdwTotalVirtual値とdwAvailVirtual値からプロセスの使用している仮想メモリ値を算出できるとのことでした。

これからもよろしくお願いします。

お礼日時:2001/07/11 14:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!