BT

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

| 作者: Jonathan Allen フォローする 612 人のフォロワー , 翻訳者 編集部N フォローする 0 人のフォロワー 投稿日 2010年6月24日. 推定読書時間: 1 分 |

原文(投稿日: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

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

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

このスレッドのメッセージについてEmailでリプライする

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

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT