Низкая производительность StackPanel с WPF - PullRequest
0 голосов
/ 03 ноября 2011

У меня есть приложение, которое работает в полноэкранном режиме на дисплее высокого разрешения (1920x1080). Около 25% экрана - это StackPanel, который прокручивает изображения по экрану. (позиция X анимирована двойной анимацией)

Свиток очень медленный и нервный, с видимым разрывом. Это работает на совершенно новом игровом ноутбуке высокого класса, работающем под управлением Win7 64bit.

Я не понимаю, почему производительность такая низкая. Я делаю что-то неправильно? Эта анимация работает на CPU или GPU? Есть ли более умный способ прокрутки изображений по экрану?

Ответы [ 2 ]

0 голосов
/ 03 ноября 2011

Уловка, которая, как я видел, может обойти эту проблему, состоит в том, чтобы разместить 3D-объект на вашей странице, посмотреть на него сбоку и повернуть его, например, для 4 изображений есть куб с изображением, установленным с каждой стороны.Да, для ротации по-прежнему требуется время на GPU и процессор, но это обеспечивается внутри анимации WPF и поэтому не требует взаимодействия с кодом, стоящим за установленным циклом.

0 голосов
/ 03 ноября 2011

WPF может быть аппаратно ускорен, но только на новых драйверах видеокарты.Некоторые встроенные драйверы по умолчанию вернутся к программному рендерингу, который может быть очень медленным и неуклюжим.Что касается разрыва, это нормальная настройка видеокарты, называемая V-Sync.Я бы попробовал обновить драйверы видеокарты до проприетарного драйвера (nVidia, AMD и т. Д.) И включить вертикальную синхронизацию на карте.

Вы можете проверить, попадает ли она в программный или аппаратный рендеринг, используяметоды, объясненные здесь .

Если это не решит проблему, единственная другая возможность, о которой я могу подумать, это ваша анимация / рендеринг не синхронизируется с GUI.

См. эту статью MSDN для более подробной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...