■環境
・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のメモ
リーを知ることはできませんでしょうか?
あんまり詳しくないですが、ここが参考になりますか。
http://stackoverflow.com/questions/560430/what-is-the-win32-api-function-for-
private-bytes
パフォーマンスカウンターで Process\Working Set - Private の値を取ることになりま
すかね。
PROCESS_MEMORY_COUNTERS_EX.PrivateUsage は違いそうな気がします。試していませんけ
ど。
うーーん、
パフォーマンスモニターで見たほうがいいみたいですね。
僕も、リソースをチェックする時に使いますが、グラフで表示できて便利です。
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
皆様、レスポンスありがとうございました。
コードレベルでは、難しそうですね、、
パフォーマンスカウンター API を使えば取得可能ですよ。
中澤さんが紹介してくださっているリンク先のスレッドから、ここ
http://msdn.microsoft.com/en-us/library/aa373083(VS.85).aspx
へのリンクが張られていますが、見られましたか?
仲澤さん、aetosさん、どうもありがとうございました。
まだテスト段階ですが、うまくいきそうです!