web-dev-qa-db-ja.com

アプリケーションが使用するメモリ量を取得する方法

可能性のある複製:
C#でメモリを使用可能または使用する方法

アプリケーションのステータスバーで、アプリケーションが使用するメモリを視覚化したい。私は記憶漏れを探しています-しかし、私はどこがわかりません。今、私の考えは、ステータスバーで使用されているメモリを視覚化して、アプリケーションで作業中にそれを確認し、問題が発生している部分を見つけて、プロファイリングできるようにすることです。

誰かが私に助けを与えることができますか、どのように使用済みメモリを取得できますか?.

27
BennoDual

次の関数を使用できます(trueパラメーターは、GCに最初にコレクションを実行するように指示します)。

long memory = GC.GetTotalMemory(true);
36
geniaz1

あなたが試すことができます GC.GetTotalMemory

現在割り当てられていると考えられるバイト数を取得します。パラメーターは、システムがガベージを収集してオブジェクトをファイナライズできるように、このメソッドが戻る前に短い間隔を待機できるかどうかを示します。


または

using System.Diagnostics;

Process currentProc = Process.GetCurrentProcess();

現在のプロセスへの参照を取得したら、PrivateMemorySize64プロパティを読み取って、そのメモリ使用量を確認できます。

long memoryUsed = currentProc.PrivateMemorySize64;
13
Rahul Ranjan

アプリケーションで使用されるメモリを監視する場合は、そのためのコードを記述する必要はありません。 Windowsのパフォーマンスカウンターを使用するだけです( http://www.codeproject.com/Articles/8590/An-Introduction-To-Performance-Counters )。必要な情報をチャートで提供します!多くのメモリカウンターがあります( http://msdn.Microsoft.com/en-us/library/x2tyfybc.aspx )、そのうちの1つに必要なデータがあります。アプリが必要以上のメモリを使用し始めたときを見つけるのに役立ちます。

ただし、アプリケーションにこの情報を入れる必要がある場合でも、パフォーマンスカウンターを使用できます。 .NETには、データにアクセスするためのSystem.Diagnostics名前空間にクラスがあります。この例を参照してください: https://weblog.west-wind.com/posts/2014/Sep/27/Capturing-Performance-Counter-Data-for-a-Process-by-P​​rocess-Id

4
Fabio