2012-03-09 2 views
1

現在のアセンブリのサイズをメモリに取得するにはどうすればよいですか?現在のアセンブリのサイズをメモリに取得

これはかつてのためのトリックを行います。

while (System.Diagnostics.Process.GetCurrentProcess().PrivateMemorySize64 < 1 gigabyte) 

しかし、そのアセンブリがメモリに成長しているにもかかわらず、値を変更しません。

私はここで何が欠けていますか?

+2

私はC#でリテラル "1ギガバイト"を見たことがありません。これが本当のコードだと確信していますか? –

+2

「メモリ内の現在のアセンブリのサイズ」という概念は何を意味していますか?そんなことは聞いたことがない。メモリ内のアセンブリのサイズは何ですか、さらに重要なことに、なぜこの値が変わると思いますか? .NETでは、CLRはオブジェクトのインスタンスを割り当てます。それはメモリを消費するインスタンスです。あなたが求めているのはそれですか?はいの場合、次のシナリオを考えてみましょう:アセンブリがメモリを割り当てるアンマネージC++コンポーネントを呼び出す - >このメモリも考慮しますか? –

+0

アセンブリの現在のメモリ使用率を意味しますか? – TheBoyan

答えて

1

PrivateMemorySize64の代わりに、「現在のメモリ」または「合計メモリ」を意味するかどうかによって、WorkingSet64またはVirtualMemorySize64を使用してください。

WorkingSet64には、現在マシンのRAMにあるバイト数が表示されます。

VirtualMemorySize64は、プロセスのアドレス空間にあるバイト数を示します。これには現在RAMにあるバイトとディスクにスワップアウトされたバイトが含まれます。

+0

ありがとうございました! – Yustme