0

複雑な WPF アプリケーションを最小化すると、使用メモリが減少することがわかります。また、WPF ウィンドウを復元すると、そのメモリが回復されます。

私の質問はこれです

  1. これは私たちがビデオメモリと呼んでいるものですか?
  2. WinForms アプリでも同じことが観察されますか? 最小化したときにMSWordがそのようなことをしていないのを見たので、これを尋ねています。
  3. また、Windows OS がこのメモリをうまく管理しているのであれば、仮想化されたスタック パネルを作成する代わりに、なぜすべてを仮想化しなかったのでしょうか。

これについて興味深い答えが得られることを願っています。

4

1 に答える 1

1

ビデオメモリはまったく違うものです。グラフィックカードがテクスチャ、画面イメージ、シェーダープログラムの入出力などを保存するために使用します。

WPFは、グラフィックアクセラレーション、テクスチャ、シェーダー、およびオフスクリーンサーフェスを使用するため、より多くのビデオメモリを使用します。

WinFormsアプリはそうではありません-GDIを使用してレンダリングするだけなので、設計上画面外で何かが起こっていない限り、使用されるビデオメモリははるかに少なくなります。

最後に、専用のツールを使用せずにビデオメモリを測定することはできません。タスクマネージャでウィンドウなどを復元/最小化するときに表示されるメモリは、ビデオメモリではなく、「通常の」メモリです。実際には、非常にローエンドのシステムでビデオメモリに使用されるメインシステムメモリが表示される場合がありますが、ウィンドウが最小化された場合にWPFが最新の状態を維持する必要がない可能性が高いため、一部のオブジェクトが解放されます。

そのため、「Windows OSがこのメモリを適切に管理している場合」の意味がわかりません。仮想化はいくつかの点で優れている可能性がありますが、もちろん、特にWPFの場合、多くの欠点があります。どこでも使用できます。

于 2011-10-19T17:24:09.630 に答える