2

妻のスクリーン セーバーhttp://cchearts.codeplex.com/に取り組んでいます。ローエンド マシンで FPS を改善できましたが、CPU 使用率は依然として非常に高いようです。

以下は、5 分間のサンプリング期間から得たいくつかの数値です。

Core 2 Duo T7500 @ 2.2GHz、3GB RAM、NVIDIA Quadro NVS 140M (128MB)、Vista [私の開発用ラップトップ] で ~60FPS 35% の平均 CPU

~40FPS Pentium D @ 3.4GHz、1.5GB RAM、標準 VGA グラフィックス アダプタ (不明)、2003 Server [粗末なデスクトップ] で平均 CPU の 50%

粗末なデスクトップではフレーム レートが低く、CPU 使用率が高いことは理解できますが、それでもかなり高いように見え、開発用ラップトップの 35% も高いようです。

アプリケーションを分析して詳細を取得したいのですが、そこにも問題があるので、何か間違ったことをしているのではないかと思っています(以前にWPFをプロファイリングしたことはありません)。

WPF パフォーマンス スイート:

プロセス起動エラー

プロセスに接続できません: CCHearts.exe 強制終了しますか?

このエラー メッセージは、起動を試みた後にキャンセルをクリックすると表示されます。キャンセルをクリックしないと、アイドル状態になり、接続を待っていると思います。

パフォーマンス エクスプローラー:

C:\Projects2\CC.Hearts\CC.Hearts\bin\Debug (USEVISUAL)\CCHearts.exe を起動できませんでした。アプリケーションをプロファイリングする前回の試みは失敗に終わりました。アプリケーションを再起動してください。

パフォーマンスからの出力ウィンドウ:

プロファイリングを開始しました。プロファイリング プロセス ID 5360 (CCHearts)。プロセス ID 5360 が終了しました。C:\Projects2\CC.Hearts\CCHearts100608.vsp に書き込まれたデータ。プロファイリング終了。PRF0025: データが収集されませんでした。プロファイリング完了。

そのため、パフォーマンスを向上させたいと思っていますが、ボトルネックがどこにあるかを特定する具体的な方法はありません。この時点ではダーツを投げるのに比較的成功していますが、今はそれを超えています :)


概要:

これまでの多くの進歩...

パフォーマンス エクスプローラー

問題:動作していませんでした。漠然としたエラー メッセージが表示されます。

解決策:コマンド ライン バージョンを使用して、実際のエラー メッセージを取得し、このスレッドを指摘して、Symantec dll が私をブロックしていることを指摘しました。次のレジストリ キーを設定すると、問題が修正されました。

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SysPlant]

"開始"=dword:00000004

WPF パフォーマンス スイート

問題:機能していませんでした。エラー メッセージは表示されません。

解決策: Windows SDK 7 の以前のバージョンではなく、 Windows SDK 7.1の .NET 4 用に設計された WPF パフォーマンス スイートを使用します(ばかげていると思います:-P)

WPF アニメーション

問題: FPS/認識されたワークロードと比較して CPU 使用率が高い。

解決策:あちこちで多くの調整を行います。しかし、 Jeremiah Morrillが指摘したように、大幅な改善はCached Compositionでした。変更セットを確認してください。

4

3 に答える 3

6

あなたのコードをダウンロードしたところ、私のクアッドコア 2.6 GHz で約 20 ~ 28% の CPU 使用率が見られました。キャッシュされたコンポジションを追加することで、CPU を 6 ~ 8% まで下げることができました。

「DEBUG(USEVISUAL)」ではなく「DEBUG」を使用してコンパイルし、Heart.xaml で BitmapCache をパスに追加しました。

パス CacheMode="BitmapCache" ...

于 2010-06-09T01:15:48.357 に答える
0

過度に最適化したくありません。答える必要がある最初の質問は、ほとんどのスクリーンセーバーのパフォーマンスは?

すべてが 50% の CPU を使用する場合、私は心配しません (そうであるとは思えません)。やみくもにダーツを投げる前にサイクルを節約したい場合は、WPF の 3D の側面を本当に理解していることを確認してください。

ここから始めるのが最適です

WPF 3D パフォーマンスを最大化する

于 2010-06-08T17:56:51.133 に答える
0

Celeron 1.1Ghz で同様の安定した高い CPU 使用率 (~95%) に気付きましたが、アニメーションをオンにした結果、パフォーマンスが低下したことに気付きませんでした。FPS を定量化したことはありませんが、かなり低いと思われます。私の印象では、WPF は日和見的なリソース利用戦略に従っており、収集できる最高の品質を得るためにできる限りのことを行いますが、他の処理に干渉するほどではありません。他のタスクで CPU に負荷をかけると、それに応じてグラフィックに関連する CPU 使用率が低下すると思われます。

于 2010-06-08T17:58:21.353 に答える