2012-04-11 50 views
3

私のWPFプロジェクトでは、ウィンドウを開くと、CPU使用率は約30%〜50%ですが、このウィンドウを最小化するとCPU使用率は1%に低下します。なぜ誰かがその理由を知っていますか?ありがとうWPFでのCPU使用率が高い

+3

これは十分な情報ではありません。ここでは推測しているので、アニメーションを実行していると推測します。なんらかの理由で、または計算上困難です。 「ローディングインジケータ」の最初の試みは覚えています。バックグラウンドでの読み込み中に回転するスピンナーは、レンダリングのためにコア全体を取りました。私は究極の皮肉のためにそれを残しました。 – Gleno

答えて

4

あなたの画面に多くのバインディング(2つの方法)がありますか?これは高いCPUを引き起こす可能性があります。 または多くのアニメーション?ロディによってhttp://msdn.microsoft.com/en-us/library/aa969767.aspx

2

良いポストを、私はちょうどので、答えの代わりにコメントを使用して、いくつかのことを追加するつもりです:あなたは、この高いCPU負荷を引き起こしているものを監視するために、WPFのパフォーマンス・スイートを使用することができ、最終的

コメントには最大限の制限があります。

Ants Profilerを使用することもお勧めします.2週間の試用期間があり、何が起こっているか把握するのに十分です。また、いくつかのコードを投稿すると、ここの人々がすぐにいくつかのことを指摘することができます。

たとえば、Rudy氏が指摘しているように、Bindings and Animationsのトンや、複雑すぎるコントロールやコントロールテンプレートがあるとします。境界線内のスタックパネル内の不要なコンポジションに質問してください...ラベルの代わりにTextBlocksを使用するか、またはテキストボックスが必要かどうかを読み取り専用の場合はTextBlocks + Borderを使用してください。 ItemControlのアイテムは複雑すぎますか?など...

また、Ants Profilerはあなたの「ゾンビ」オブジェクトを表示できます。あなたは正しく廃棄していますか、オブジェクトをリサイクルしているか、毎回新しい構造を作成しています(たとえば、データの新しい日付範囲を選択して表示するなど)。データグリッドセルを持っている場合は、すべて1つに高価なものが必要です...ポップアップと余分な境界線..いくつかの視覚的効果のために各セルの周りに境界線を作成すると、それはグリッド上にある。 そして、リストは続けることができます。

ロングストーリーショート - WPFは豚です:物事を整えなければならないかもしれません。

P.S.いくつかのコードを投稿することを忘れないでください。

+0

うわー、アリのパフォーマンスプロファイラは本当に素晴らしいヒントです!ありがとう! –