最近WPFのパフォーマンスチューニングに勤しんでいます。300,000個ほどのオブジェクトを描画するデスクトップアプリを作っている中で、役に立ったり効果のあった話をまとめていきます。基本的には速度低下を招くよろしくない実装の確認や、対策の紹介などしていきます。今回は「CanvasへのAdd/Removeめっちゃ遅い」問題について検証します。先に言っておきますが、対策は「できるだけCanvasに描画オブジェクトを出し入れしない」しか思いつきませんでした。検証コード(どのくらい遅いのか)10,000個のBorderをCanvasに対してAdd/Remove/Clearしてみます。Releaseビルドで計測しています。}}結果(どのくらい遅いのか)Addはまぁぎりぎり許容範囲だとして、全部消すのに1000msもかかってます。10,000個でこの速度なので、描画データの更新時に「全部消して入れ直せばいいや」というのがよろしくないことがわかります。扱うオブジェクトが多い場合には、できるだけ動作中にCanvasへのオブジェクトの出し入れはしないように設計しましょう。最近WPFのパフォーマンスチューニングに勤しんでいます。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。TOPPelicanPhilosophyは、よりよいブログ作りのためクッキーを使用しています。