タスクマネージャーに表示されている「メモリ(プライベートワーキングセット)」と同じ値を表示するには、PerformanceCounterを使う。Process.PrivateMemorySize64 ではだめ。Google+からコピーした記事。2013/9/12
エクセルが複数個動いているときに、それぞれのメモリ使用量が欲しいときは、エクセルそれぞれのプロセス名を得る。
時間がかかるので、プロセスIDと名前はキャッシュするのが吉。
var pc1 = new PerformanceCounter("Process", "Working Set - Private", Process.GetCurrentProcess().ProcessName);
long n = pc1.RawValue; // メモリ使用量
エクセルが複数個動いているときに、それぞれのメモリ使用量が欲しいときは、エクセルそれぞれのプロセス名を得る。
var cg = new PerformanceCounterCategory("Process");
foreach (string s in cg.GetInstanceNames())
{
var p = new PerformanceCounter("Process", "ID Process", s, true);
if (p.RawValue == ps.Id)
{
psName = s;
break;
}
}
時間がかかるので、プロセスIDと名前はキャッシュするのが吉。
コメント
コメントを投稿