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