妻のスクリーン セーバー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でした。変更セットを確認してください。