0

新しいWPFアプリケーションを展開しようとしていますが、タスクマネージャーで大量のメモリを消費していることに気づきました。そこで、RedGate Antzの試用版をダウンロードして、この問題の原因を突き止めました。管理されていないメモリ使用量が約90MBであることにショックを受けました。Antzは損傷していないメモリをサポートしていないため、使用率が高いこと自体を示さないWindbgを使用しようとしました。これにより、ロードしているDLLの1つである必要があると思います。アプリケーションでDevExpressコントロールを使用しています。

興味深い機能は、アプリケーションを最小化すると、メモリがたとえば110 MBから約6〜10MBに減少することです。

私は心配/心配する必要がありますか?

これは私の最初のWPFアプリケーションであり、メモリ使用量の観点から何を期待できるか完全にはわかりません。このメモリを最小化すると、すべてが正常であるという兆候が回復/与えられますか?

これを引き起こしている可能性のあるものについての考えやアイデアが最も役立ちます。

4

1 に答える 1

2

何が原因であるかを具体的に知りたい場合は、SciTech の .Net Memory Profiler (memprofiler.com) で幸運に恵まれました。

.Net ランタイムの性質上、利用可能なメモリが十分にあるマシンで実行している場合、通常はそれを使用しようとします。それに関連するパフォーマンスの問題が発生し始めた場合は、心配する必要があります。一般に、何がリソースを使用しているかに注意することをお勧めします。メモリ ドロップの原因として考えられるのは、DLL の 1 つがメイン ウィンドウのイベントにフックし、最小化時にガベージ コレクションを呼び出す可能性があることです。

メモリ使用量が多いという認識が気になる場合は、TaskManager に表示される数値をマッサージするためにプレイできるトリックがあります (p/invoking SetProcessWorkingSetSize など) が、それは実際にあなたが求めているものではないようです。 .

于 2012-07-11T15:23:22.587 に答える