2010-10-04 2 views
3

У меня есть ListBox. ItemsSource этого элемента управления привязан к ObservableCollection. Я хочу измерить время, которое начинается, когда я изменил ObservableCollection и заканчивается, когда пользователь видел обновленный контент в ListBox.Измерение производительности рендеринга WPF

Основная проблема заключается в том, как определить этот момент при визуализации управления. Мне нужно сделать это в коде, чтобы записать измеренное время в журнал. Какие-либо предложения?

ответ

3

Вы хотите изучить WPF Performance Suite. От MSDN:

Windows SDK включает в себя набор инструментов профилирования производительности для приложений Windows Presentation Foundation (WPF), называемых WPF Performance Suite. WPF Performance Suite позволяет анализировать поведение во время выполнения ваших приложений WPF и определять оптимизацию производительности, которую вы можете применить. WPF Performance Suite включает инструменты профилирования производительности, называемые Perforator и Visual Profiler.

Если вы хотите измерить только время в определенном теле кода (по существу, в исходном коде), вам нужно посмотреть на профилировщик производительности. RedGate sells a profiler Мне нравится - но есть и другие. Выполнение этого непосредственно в вашем коде, чтобы вы могли его самостоятельно регистрировать, будет сложно. Вы, конечно же, можете получить информацию о времени, но это само по себе исказит результаты.

+0

Мне нужно измерять время только в моем исходном коде. Этот инструмент не поможет мне достичь этого. – Pashec

+0

@Pashec: Да, я обновил свой ответ. – LBushkin

+0

@LBushkin: Какова нынешняя альтернатива WPF Performance Suite для профилирования приложений .NET 4.5? Я был бы очень признателен вам, если вы посмотрите на мой вопрос [здесь] (http://stackoverflow.com/q/33468572/3345644). –

Смежные вопросы