Работаю над заставкой для моей жены, http://cchearts.codeplex.com/,, и хотя мне удалось улучшить FPS на младших компьютерах, загрузка процессора все еще кажется очень высокой.
Вот некоторые цифры, которые яработал от нескольких 5-минутных периодов выборки:
~ 60FPS Средний процессор 35% на Core 2 Duo T7500 @ 2,2 ГГц, 3 ГБ оперативной памяти, NVIDIA Quadro NVS 140 М (128 МБ), Vista [Мой ноутбук для разработчиков]
~ 40FPS Средний процессор 50% на Pentium D @ 3,4 ГГц, 1,5 ГБ ОЗУ, стандартный графический адаптер VGA (неизвестно), сервер 2003 года [Дрянной рабочий стол]
Я могу понять более низкую частоту кадров и вышеЗагрузка ЦП на дерьмовом настольном компьютере, но она все еще кажется довольно высокой, и 35% на моем ноутбуке dev также кажутся высокими.
Мне бы очень хотелось проанализировать приложение, чтобы получить больше подробностей, но у меня тоже есть проблемы, поэтому я задаюсь вопросом, делаю ли я что-то не так (никогда ранее не профилировал WPF).
WPF Performance Suite:
Ошибка запуска процесса
Невозможно подключиться к процессу: CCHearts.exe Хотитеkill it?
Это сообщение об ошибке появляется, когда я нажимаю кнопку отмены после попытки запуска.Если я не нажму кнопку «Отмена», она будет бездействовать, думаю, я ожидаю подключения.
Performance Explorer:
Не удалось запустить C: \ Projects2 \CC.Hearts \ CC.Hearts \ bin \ Debug (USEVISUAL) \ CCHearts.exe.Предыдущая попытка профилировать приложение завершилась неудачно.Пожалуйста, перезапустите приложение.
Окно вывода из Performance:
Профилирование запущено.ID процесса профилирования 5360 (CCHearts).Идентификатор процесса 5360 завершен.Данные записываются в C: \ Projects2 \ CC.Hearts \ CCHearts100608.vsp.Профилирование закончено.PRF0025: Данные не были собраны.Профилирование завершено.
Так что я застрял, желая улучшить производительность, но у меня нет конкретного способа определить, где находится узкое место.В этот момент я был относительно успешен в метании дротиков, но теперь я за этим не согласен:)
Краткое содержание:
Пока много прогресса ...
Performance Explorer
Проблема: Не работает, смутное сообщение об ошибке.
Решение: Использовал версию командной строки , чтобы получить реальное сообщение об ошибке, которое указывало мне на этот поток , указывающее, что это был Symantec dll, блокирующий меня.Установка следующего раздела реестра устранила проблему:
[HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ SysPlant]
"Start" = dword: 00000004
Производительность WPFSuite
Проблема: Не работает, сообщений об ошибках нет.
Решение: Используйте WPF Performance Suite, разработанный для .NET4 из Windows SDK 7.1 вместо предыдущей версии из Windows SDK 7 (чувствую себя глупо :-P)
WPF Animation
Проблема: Высокая загрузка ЦП по сравнению с FPS / принятой рабочей нагрузкой.
Решение: Много хороших настроек здесь и там.Но улучшение ОГРОМНОЕ было Кэшированная композиция , как указал Иеремия Моррилл.Проверьте changesets .