Working Set Privateメモリーの取得方法

[戻る]
pon 2014/03/24(月) 19:44:18
■環境
・WindowsXP
・Visual Stdio 2005 (VC++)

■やりたいこと
WorkingSet Privateメモリーの量を知りたい
(メモリリークの確認のため)

■コード

PROCESS_MEMORY_COUNTERS pmc = { 0 };

const DWORD dwProcessID = GetCurrentProcessId();
HANDLE hProcess = OpenProcess (PROCESS_ALL_ACCESS, TRUE, dwProcessID );
GetProcessMemoryInfo( hProcess, &pmc, sizeof(pmc) );

■内容
GetProcessMemoryInfoにて得られる pmc から "現在のWorkingSetメモリー" の量を知る
ことはできたのですが、さらにその中(現在のWorkingSetメモリー)の、"private"のメモ
リーを知ることはできませんでしょうか?

仲澤@失業者 2014/03/25(火) 12:55:08
あんまり詳しくないですが、ここが参考になりますか。

http://stackoverflow.com/questions/560430/what-is-the-win32-api-function-for-
private-bytes

aetos 2014/03/26(水) 14:30:36
パフォーマンスカウンターで Process\Working Set - Private の値を取ることになりま
すかね。

PROCESS_MEMORY_COUNTERS_EX.PrivateUsage は違いそうな気がします。試していませんけ
ど。

ITO 2014/03/26(水) 17:22:05
うーーん、
パフォーマンスモニターで見たほうがいいみたいですね。
僕も、リソースをチェックする時に使いますが、グラフで表示できて便利です。

Windows7以降みたいですね。


サイト

http://windows.microsoft.com/ja-jp/windows/what-task-manager-memory-columns-
mean#1TC=windows-7

http://blog.livedoor.jp/blackwingcat/archives/1842334.html

http://technet.microsoft.com/ja-jp/windows/ff467974.aspx


windows xpは、こちら
でも、制限があるみたいです。

http://msdn.microsoft.com/en-us/library/windows/desktop/ms684874(v=vs.85).aspx

pon 2014/03/28(金) 10:47:46
皆様、レスポンスありがとうございました。

コードレベルでは、難しそうですね、、

aetos 2014/03/31(月) 11:22:48
パフォーマンスカウンター API を使えば取得可能ですよ。

中澤さんが紹介してくださっているリンク先のスレッドから、ここ
http://msdn.microsoft.com/en-us/library/aa373083(VS.85).aspx
へのリンクが張られていますが、見られましたか?

pon 2014/04/07(月) 17:30:03
[[解決]]
仲澤さん、aetosさん、どうもありがとうございました。
まだテスト段階ですが、うまくいきそうです!

古いスレッドには追加発言できません。