Как мы можем улучшить производительность наших анимаций WPF (100 из них)? - PullRequest
5 голосов
/ 04 декабря 2009

У нас есть приложение, которое генерирует около 100 анимаций во время выполнения, и все они добавляются в одну раскадровку и затем воспроизводятся. Проблема в том, что анимация очень медленная. Анимационные объекты - это формы и сплайны, и в бэкэнде выполняется много вычислений для генерации пользовательских сплайнов. Работающий компьютер представляет собой четырехъядерный процессор с хорошей видеокартой.

Любые предложения о том, как мы можем это исправить? Нужно ли разделять анимацию на несколько раскадровок или анимировать на разных холстах?

Спасибо

1 Ответ

2 голосов
/ 04 декабря 2009

Нетрудно понять, что замедляет анимацию, не видя анимации и кода. Но я дам вам общие замечания, которые помогут их улучшить.

  1. Переместите ваш расчет в другую ветку, если есть очень тяжелый расчет. Поток диспетчера занят выполнением управления вашим пользовательским интерфейсом, поэтому, если вы поместите все в один поток, это, безусловно, замедлит работу.
  2. Повторное использование сплайнов, фигур и т. Д., Это, безусловно, поможет вам, поскольку вы также освободите свое приложение от дорогостоящих процедур сбора мусора. Infact перед запуском анимации, отобразите некоторые другие анимации, такие как часы и т. Д., Чтобы создать все объекты, необходимые в начале.
  3. Изучите параметры кэширования растровых изображений и попытайтесь их реализовать.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...