12

WPFを使用してアプリケーションを開発しています。アプリはフルスクリーンで実行され、モニターの解像度に関係なくサイズを適切に変更する必要があります。グラフィックデザイナーは、UIボタン、背景などの美しい画像をデザインしました。Illustratorプラグインを使用して、すべての画像がxamlファイルに変換されました。これらすべての画像をアプリケーションに追加しましたが、見栄えがします。Gridまた、レイアウトを維持しながら画面のサイズを変更できるように、多くのレイアウトを使用しています。これらはすべて希望どおりに表示され、別の解像度で実行しても何も引き伸ばされていないように見えます。ただし、画面の遷移とUIの相互作用は遅いです。

不思議に思うのですが、これはグラフィックの多用によるものですか?使用しているGridレイアウトが多すぎませんか?ただし、Grid解像度を独立させるには、が必要です。

アプリケーションは私の開発マシンでは正常に実行されますが、パフォーマンス機能が低いマシンでは非常に遅くなります。ええ、これは予想されることですが、私が見ているほどではありません。私の雇用主は、アプリケーションがこれらの低パフォーマンスのマシンでスムーズに実行されると主張しています。

アプリケーションのプロファイリングをいくつか行いましたが、最も時間がかかるのは表示機能のようです(ただし、プロファイラーの効果的な使用方法を完全に理解しているとは限りません)。

速度低下の原因がWPFである場合、これを改善するにはどうすればよいですか?

4

6 に答える 6

11

WPFのパフォーマンスプロファイリングツールを使用して、どのWPFアクティビティが時間を使い果たしているかをドリルダウンできます。重いグラフィック負荷が速度低下を引き起こしていると仮定すると、これにより、単純化(レイアウトなど)または削除(ビットマップ効果(ビットマップ効果など)が必要になる可能性があるものについて、ある程度の助けが得られるはずですが、偏見はしたくありません。あなたのプロファイリング!))。

于 2009-12-12T00:58:46.987 に答える
5

速度低下を引き起こしているのがWPFの場合

おそらくそうではありません;)

速度低下の原因はコードである可能性がはるかに高くなります。WPFは強力ですが、うまく機能させるにはコアの概念を理解する必要があります... PDCセッションからのこのビデオを見る必要があります。これは、WPFアプリケーションを高速化する方法に関する多くのアドバイスを提供します。

于 2009-12-12T01:02:12.273 に答える
4
  1. ボタンのXAMLベクター画像を透明なPNG画像に変換します。パスとシェイプは、レンダリング、計算、およびサイズ変更が非常に重いです。ほとんどの場合、展開後、形状、サイズ、またはその他の属性を変更するスムーズなアニメーションを実行する場合を除いて、画像をラスターとして、次にベクトルとして使用する方が適切に変更されることはありません。

  2. グリッドは、CanvasやDockPanelと比較して、非常にコストのかかるレイアウトマネージャーです。特定のグリッドをDockPanelに置き換えることも考えられますが、簡単な修正ではなく、多くのブレインストーミングが必要です。

  3. 一人っ子のパネルは避けてください。視覚的階層を減らしてみてください。

  4. ボタンなどの小さな要素には固定サイズを多く使用します。子の固定サイズを指定すると、Panelsでレイアウト処理が簡単になります。

于 2009-12-13T07:44:22.863 に答える
3

一般に、WPFは、WindowsフォームやネイティブGDIまたはDirectXよりも描画パフォーマンスがはるかに劣っています。

はい、WPFは、GDIでサポートされていない優れたものを作成できるという意味で強力ですが、より低速です。

やるべきことがたくさんあり、遅いハードウェアでそれをサポートしたい場合は、WPFは良い選択ではありません。

于 2015-11-14T08:11:05.997 に答える
1

WPFのパフォーマンスは、プロセッサ/メモリよりも、マシンのビデオカードの品質に大きく依存します。悪いビデオカード=悪いWPFパフォーマンス。

于 2009-12-12T01:05:02.907 に答える
1

まあ、これはロングショットです。VSTS2010をインストールしたとき(そしてWPFを使用したとき)、十分なCPU/メモリを備えたWindows2008サーバーでは非常に遅く、より控えめなノートブックでは非常に高速でした。ハードウェアアクセラレーションを無効にすることができ、そのマシンでは非常に高速になりました。

非常に単純なため、この構成を試してみることをお勧めします。仮想マシンで実行されているVisual Studio 2010Beta2エディターのパフォーマンスの修正

于 2009-12-12T01:07:26.843 に答える