プロセスのメモリ使用量を測定する手順

タスクマネージャーに表示されている「メモリ(プライベートワーキングセット)」と同じ値を表示するには、PerformanceCounterを使う。Process.PrivateMemorySize64 ではだめ。Google+からコピーした記事。2013/9/12



  1. var pc1 = new PerformanceCounter("Process", "Working Set - Private", Process.GetCurrentProcess().ProcessName);
  2. long n = pc1.RawValue;    // メモリ使用量

エクセルが複数個動いているときに、それぞれのメモリ使用量が欲しいときは、エクセルそれぞれのプロセス名を得る。

  1.     var cg = new PerformanceCounterCategory("Process");
  2.     foreach (string s in cg.GetInstanceNames())
  3.     {
  4.             var p = new PerformanceCounter("Process", "ID Process", s, true);
  5.           if (p.RawValue == ps.Id)
  6.           {
  7.               psName = s;
  8.               break;
  9.           }
  10.   }

時間がかかるので、プロセスIDと名前はキャッシュするのが吉。

コメント

このブログの人気の投稿

varchar をデータ型 numeric に変換中に、算術オーバーフロー エラーが発生しました。