昨日のCPUに続き。
メモリの場合は非常に簡単です。
1.OpenProcessにてプロセスハンドルを取得
2.GetProcessMemoryInfoを使う。
以上です。
取得出来る値は、
(1)ページ・フォールト数(ページ フォルト)
(2)現在ワーキングセット(メモリ使用量)
(3)最大ワーキングセット(最大メモリ使用量)
(4)現在ページプールの使用サイズ(ページ プール)
(5)最大ページプールの使用サイズ
(6)現在非ページプールの使用サイズ(非ページ プール)
(7)最大非ページプールの使用サイズ
(8)現在ページングファイルの使用サイズ(仮想メモリ サイズ)
(9)最大ページングファイルの使用サイズ
詳しいことはこちらに。
GetProcessMemoryInfo 関数
プロセスのメモリ情報を取得 - プログラミングのメモ帳
しかーし、GetProcessMemoryInfoでは、Vistaのタスクマネージャにデフォルトで出てくる"Private Working Setが"取れません。
上記(2)の現在のワーキングセットと何が違うのかと言うと、
Working Set:共有DLLを含めたプロセスのメモリ使用量
Private Working Set : 共有DLLを含めない、プロセスのみが使用する(共有できない)メモリサイズ
そこでPdhAddQueryに指定するパフォーマンスカウンタへのパスを、"\\Process(hogehoge)\\Working Set - Private"と指定すれば値は取れる思う。やってないけど。。。
- 作者: ビャーネ・ストラウストラップ,Bjarne Stroustrup,柴田望洋
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2015/02/28
- メディア: 単行本
- この商品を含むブログ (11件) を見る
- 作者: (株)アンク
- 出版社/メーカー: 翔泳社
- 発売日: 2005/04/21
- メディア: 単行本
- 購入: 11人 クリック: 126回
- この商品を含むブログ (21件) を見る
- 作者: ハーバート・シルト,神林靖,トップスタジオ
- 出版社/メーカー: 翔泳社
- 発売日: 2010/10/20
- メディア: 大型本
- 購入: 8人 クリック: 14回
- この商品を含むブログ (3件) を見る