プロセスのメモリ使用量を測定する手順
タスクマネージャーに表示されている「メモリ(プライベートワーキングセット)」と同じ値を表示するには、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と名前はキャッシュするのが吉。
コメント
コメントを投稿