質問

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

気になるのですが、これはグラフィックを多用しているためでしょうか?使いすぎですか? Grid レイアウト?でも、私には Grid解像度に依存しないようにするためです。

アプリケーションは私の開発マシンでは問題なく動作しますが、パフォーマンス機能が低いマシンでは著しく遅くなります。はい、これは予想通りですが、私が見たほどではありません。私の雇用主は、アプリケーションはこれらの低パフォーマンスのマシンでもスムーズに動作すると主張しています。

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

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

役に立ちましたか?

解決

あなたは、WPFの活動は、ツールをプロファイリングパフォーマンスを使用して時間を使用しているにドリルダウンすることができますWPF の。重いグラフィカルな負荷が減速を引き起こしていると仮定すると、これはあなたに簡素化する必要があるかもしれないものに関しては、いくつかの助けを与える(例えばレイアウト)または削除(例えばビットマップ効果(私は偏見にしたくないけれどもこれらは、古典的なPERFキラーある必要がありますあなたのプロファイリング!))。

他のヒント

  それは減速を引き起こしているWPF

おそらくない;)

それは、景気減速の原因となるのあなたのコードのあることをはるかに可能性があります。 WPFは強力ですが、あなたはそれがうまく動作させるために中心的な概念を理解する必要があります...あなたはこれを見ている必要がありますPDCセッションからのビデオには、それはより速く、あなたのWPFアプリケーションを作成する方法についてのアドバイスの多くを提供しています。

  1. ボタンの XAML ベクター イメージを透明な PNG イメージに変換します。パスとシェイプは、レンダリング、計算、サイズ変更が非常に重いです。形状、サイズ、その他の属性を変更するスムーズなアニメーションを実行する場合を除き、ほとんどの場合、展開後に画像が変更されることはありません。ベクトルではなくラスターとして使用する方が良いでしょう。

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

  3. 一人の子供を持つパネルは避けてください。視覚的な階層を減らすようにしてください。

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

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

さて、これは ロングショット:VSTS 2010をインストールしたとき(そしてWPFを使用しています)、それは次のとおりでした とても 十分な CPU/メモリを備えた Windows 2008 サーバーでは遅く、非常に遅い 速い もっと控えめなノートブックで。ハードウェア アクセラレーションを無効にすることができ、そのマシンへの接続が著しく高速になりました。

この構成は非常に簡単なので、ぜひ試してみてください。 仮想マシン上で実行される Visual Studio 2010 Beta 2 エディターのパフォーマンス修正

一般的に、WPFは、Windowsフォームよりパフォーマンスを描くにははるかに悪いperfoming、およびネイティブGDIまたはDirectXをされています。

はい、WPFはあなたがGDIでサポートされていないいくつかのきちんとしたものを作る可能性があるという意味で強力ですが、それはより多くの低迷である。

あなたが行うには多くの図面を持っている、とあなたが遅いハードウェア上でそれをサポートしたい場合は、

、その後、WPFは良い選択ではありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top