BT

InfoQ ホームページ ニュース WPFのメモリーリークに対する3つのホットフィックス

WPFのメモリーリークに対する3つのホットフィックス

ブックマーク

原文(投稿日:2010/06/17)へのリンク

Windows Presentation Foundationは、簡単にメモリーリークが起きるので、早速有名になっている。例えば、そのデータ バインディング技術のためにweak reference(弱い参照)に依存している。並行マルチ-スレッディングのように、弱い参照は、簡単のように見えるが、実際は、正しく使うのは驚くほど難しい。実際のオブジェクトがタイムリな方法で開放された時でさえ、WPFの弱い参照の配列は、ブラブラ状態で、ストレスがあるとメモリーリークになる。

非常にたくさんの短命の要素を使っている時に、このことが特に明らかになる。 KB981107 は、この問題を3つの領域で処理している。第一に、もしリソースを参照しているコントロールが、実際にそれを使わないと、WPFは、スタイルやテンプレート用のアプリケーション-レベルのリソースをリークする可能性がある。 Jossef Goldberg氏が詳しく説明している,

例:  アプリケーション リソースが   <sys:Double x:Key="{x:Static SystemParameters.HorizontalScrollBarHeightKey}">20</sys:Double>     と定義する。これが水平方向のスクロールバーを表示できる、どんなコントロールによっても使われるリソースを作成する。実際は、スクロールバーを表示しないコントロールをたくさん生成するとリークになるだろう。

このホットフィックスで、改善される他の状況として、たくさんの短命な要素が、長命なオブジェクトへの依存関係プロパティに、データバインドされたプロパティを持っている時である。長命なオブジェクトから短命なオブジェクトへの弱い参照は、短命なオブジェクトが破壊された後、長い間存在し続ける。

不幸にも、 KB981107ホットフィックスは、.NET 4.0用には、未だ無い。 Microsoftは、リリースするかどうかも未だ決定していない。他の2つのホットフィックス、KB967634KB967328 は、.NET 4.0の一部として出荷された。なので.NET 4.0を使っている人は、それらについて心配する必要はない。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

BT

あなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。

Eメールを変更すると確認のメールが配信されます。

会社名:
役職:
組織規模:
国:
都道府県:
新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。