Возможно ли получить время обновления графического интерфейса в приложении WPF

Мне действительно нужно рассчитать отзывчивость моего пользовательского интерфейса. Некоторые предлагали использовать WpfPerf.exe (средства профилирования производительности для WPF). Он отлично работает, однако не ведет журнал, поэтому показывает только последнюю 1 минуту FPS в виде изображения.

Однако мне нужна статистическая информация. Графический интерфейс работает с задержками, поэтому мне нужно записать, когда именно обновляется графический интерфейс. При отсутствии задержек он должен обновляться каждые 0,5 секунды.

Так что мне интересно, как я могу записывать время всякий раз, когда обновляется графический интерфейс?

.net 4.5.2 С# WPF


person MonsterMMORPG    schedule 11.04.2015    source источник
comment
Добавьте обработчик CompositionTarget.Rendering. .   -  person Clemens    schedule 12.04.2015


Ответы (1)


Для записи времени обновления графического интерфейса. Вы можете обратиться к Почему Частота кадров в WPF нерегулярна и не ограничивается обновлением монитора?

Может не в тему. Я хотел бы поделиться тем, что я сделал, чтобы улучшить свое приложение на прошлой неделе.

  • Используйте производительность Visual Studio и диагностику, если они доступны, чтобы найти узкое место.
  • используйте BackgroundWorker для подготовки данных вместо того, чтобы делать это в потоке пользовательского интерфейса.
  • используйте виртуализацию данных для отображения большого количества данных, например миллионов строк. Эта статья предлагает отличное решение для плавного отображения данных миллионов строк.

Надеюсь, это поможет.

person samuel    schedule 12.04.2015