Поделиться через


Средства профилирования производительности для WPF

Обновлен: Ноябрь 2007

WPF предоставляет набор средств профилирования производительности, позволяющих анализировать поведение приложения во время выполнения и определять типы оптимизации производительности. В следующей таблице перечислены пять средств профилирования, которые входят в состав средства WPFPerf пакета Пакет средств разработки программного обеспечения.

Средство

Описание

Perforator

Используется для анализа поведения визуализации.

Visual Profiler

Используется для профилирования работы таких служб WPF, как разметка и обработка событий, по элементам визуального дерева.

Working Set Analyzer

Используется для анализа характеристик рабочего множества приложения.

Event Trace

Используется для анализа событий и создаваемых файлов журнала событий.

ETW Trace Viewer

Запись, отображение и просмотр файлов журнала трассировки событий Windows в формате пользовательского интерфейса WPF.

В этом разделе содержатся следующие подразделы.

  • Использование средств профилирования производительности
  • Perforator
  • Visual Profiler
  • Working Set Analyzer
  • Event Trace
  • ETW Trace Viewer
  • Другие ресурсы средства производительности
  • Связанные разделы

Использование средств профилирования производительности

После установки пакета Пакет средств разработки программного обеспечения можно установить набор средств анализа производительности WPF.

Aa969767.alert_note(ru-ru,VS.90).gifПримечание.

Перед установкой этого пакета удалите предыдущие версии средства WPFPerf.exe.

При первом запуске средства WPFPerf откроется диалоговое окно Add Tool.

Диалоговое окно "Add Tool".
Диалоговое окно “Добавить инструмент”

Выберите инструменты, которые требуется использовать, и нажмите кнопку OK.

Aa969767.alert_note(ru-ru,VS.90).gifПримечание.

Чтобы использовать средства профилирования производительности, учетной записи пользователя должны быть предоставлены права администратора.

Perforator

Perforator — это средство профилирования производительности для анализа поведения визуализации. В главном окне Perforator отображается набор параметров, которые позволяют анализировать конкретное поведение визуализации в отдельных частях приложения.

Главное окно Perforator
Главное окно Perforator

Perforator позволяет установить ряд параметров, влияющих на поведение визуализации в реальном времени для приложения.

Параметр

Описание

Draw software rendering with purple tint

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

Clear back-buffer before updating

Очистка окон приложения перед каждой операцией рисования.

Show dirty region update overlay

Каждое обновление, выполняемое клиентом WPF, указывается повторной заливкой цветом. Это позволяет видеть, где и когда перерисовываются области в приложении.

Disable dirty region support

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

Disable Opacity effects

Выключение некоторых эффектов прозрачности, которые могут повлиять на производительность.

Disable per-primitive software fallback

Отключение исправления программных ошибок для отдельных примитивов визуализации. Промежуточные целевые буферы программной визуализации и другая программная визуализация не может быть отключена.

Disable high-quality image rescaling

Отключение пропорционального уменьшения размера больших изображений.

Disable 3D rendering

Отключение операций трехмерной визуализации

Параметр "Enable Debug Control"

Флажок Enable Debug Control позволяет разрешить или запретить доступ к общей памяти WPF. По умолчанию Perforator включает этот параметр при запуске и отключает его при завершении. В случае непредвиденного завершения работы средства Perforator следует перезапустить его и вручную снять флажок Enable Debug Control, чтобы отключить доступ к общей памяти WPF. Затем необходимо перезапустить Perforator и профилируемое приложение WPF.

Aa969767.alert_note(ru-ru,VS.90).gifПримечание.

При включении этого параметра возможно небольшое увеличение использования памяти и небольшое снижение производительности при выполнении приложений WPF. Необходимо убедиться, что Perforator правильно отключил этот параметр.

Настройка раздела реестра

С помощью флажка Enable Debug Control добавляется или удаляется значение раздела реестра WPF. Чтобы добавить значение раздела реестра вручную, выполните в командной строке следующую команду:

reg add HKLM\SOFTWARE\Microsoft\Avalon.Graphics /v EnableDebugControl /t REG_DWORD /d 1 /f

Чтобы удалить значение раздела реестра вручную, выполните в командной строке следующую команду:

reg delete HKLM\SOFTWARE\Microsoft\Avalon.Graphics /v EnableDebugControl /f

Использование средства Perforator

Для использования средства Perforator запустите приложение WPF, поведение визуализации которого следует проанализировать. После запуска приложения нажмите кнопку Refresh в окне Perforator. После этого приложение появится в поле со списком приложений WPF окна Perforator. Выберите приложение и параметры визуализации, которые необходимо проанализировать. Поведение визуализации приложения будет немедленно отражено в показаниях Perforator, таких как частота кадров.

Окно Perforator с выбранным приложением и параметрами визуализации
Главное окно Perforator с выбранными параметрами

На следующем снимке экрана показан пример приложения PhotoDemo с выбранными параметрами визуализации "Draw software rendering with purple tint" и "Show dirty region support":

Демонстрация поведения визуализации примера приложения PhotoDemo
Photodemo app, демонстрирующий параметры отображения Perforator

В следующих разделах описываются основные проблемы производительности, связанные с визуализацией, и объясняются, как параметры и выходные данные средства Perforator могут помочь в диагностике этих проблем.

Исключение программной визуализации

Поскольку конвейер аппаратной визуализации WPF работает значительно быстрее конвейера программной визуализации, то чем меньше Пользовательский интерфейс отображается с помощью программных средств, тем быстрее осуществляется визуализация в приложении. Обычно, время, необходимое для программной визуализации области, пропорционально количеству визуализируемых пикселов, поэтому следует проявлять крайнюю осторожность при визуализации больших областей с помощью программного конвейера; для небольших областей эти соображения не так важны.

Ниже перечислены параметры Perforator, которые могут помочь в обнаружении проблем программной визуализации.

  • Draw software rendering with purple tint — отрисовка всех областей, визуализированных с помощью конвейера визуализации программного обеспечения, фиолетовым цветом. Сюда входят целевые буферы программной визуализации, трехмерное содержимое программного обеспечения и исправление программных ошибок на основе примитивов.

  • Num Software Render Targets — количество полнооконных целевых буферов визуализации, которые выполняются исключительно программными средствами. Если это количество не равно нулю, значит, существует серьезная проблема производительности, которая, как правило, связана с конфигурацией компьютера или с наличием многослойных окон. Следует убедиться, что Microsoft Direct3D включена (запустите dxdiag), для всех мониторов установлена глубина цвета 32 бита BPP (bits per pixel — бит на пиксел), а графическая плата поддерживается Microsoft DirectX 9.0.

  • Num Hardware Render Targets — количество полнооконных целевых буферов визуализации, которые выполняются аппаратными средствами. Это количество должно быть равно числу окон приложения, умноженному на число адаптеров дисплеев. Оно указывает на то, что осуществляется максимально возможное аппаратное ускорение приложения.

Избегайте слишком большого числа промежуточных целевых буферов визуализации

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

  • Maximum SW/HW IRTs per Frame — показывает максимальное количество программных или аппаратных промежуточных целевых буферов визуализации, используемых для визуализации одного окна приложения. Промежуточные целевые буферы визуализации, как правило, бывают необходимы при использовании объектов DrawingBrush, VisualBrush, Opacity в классе Visual, или режимов мозаики в классе TileBrush. Слишком большое значение этого параметра может означать, что WPF выполняет значительный объем работы по визуализации приложения.

Полезные показатели производительности

  • Dirty Rect Addition rate — указывает, что в приложении инициируются быстрые обновления.

  • Frame rate — показывает частоту, с которой приложение выводит объекты на экране. Для приложений без анимации это значение должно быть близко к нулю, поскольку при оптимизации "грязных областей" перерисовка должна выполняться только в случае необходимости. Это значение должно рассматриваться как приблизительная оценка.

  • Estimated video memory usage — отслеживает большие объемы видеопамяти, выделенные непосредственно WPF (текстуры и целевые буферы визуализации). В этом значении не учитывается память, выделенная видеодрайвером при визуализации, память, выделенная при компиляции и загрузке построителей текстуры или вершинных построителей текстуры, и память, выделенная для буферов индексов или вершин. Обратите внимание, что при превышении доступного объема памяти текстуры логика визуализации WPF, как правило, переключается на программную визуализацию, а использование нескольких дисплеев (multi-mon) оказывает мультипликативный эффект на объект видеопамяти, необходимой для приложения.

Поддержка "грязных" областей

Поскольку Windows Presentation Foundation (WPF) обновляет только по мере необходимости отдельные области окна, полезно получить наглядное представление того, какая часть окна обновляется в каждый момент времени. Поведение обновления можно визуализировать с помощью следующих параметров.

  • Show dirty-region update overlay каждое обновление, выполняемое WPF, указывается повторной заливкой цветом. Это позволяет видеть, какие области перерисовываются при выполнении приложения и в какие моменты времени.

  • Clear Back Buffer Before Rendering — очистка окна перед каждой операцией рисования.

  • Disable Dirty Region Support — вместо перерисовки измененной области окна WPF всегда полностью перерисовывает окно. Это удобно использовать для принудительного обновления всего окна, однако следует учесть, что при включении данного параметра визуализация выполняется приложением гораздо медленнее.

Отключение функций визуализации

Средство Perforator позволяет отключать некоторые операции, сильно влияющие на производительность, чтобы определить, являются ли они причинами возникновения "узких мест" приложения.

  • Disable Opacity Effects — выключение некоторых эффектов прозрачности, которые могут повлиять на производительность. Чтобы избежать возникновения этой проблемы производительности, старайтесь настраивать прозрачность для объектов нижнего уровня, таких как Brush, а не для объектов верхнего уровня, таких как Button.

  • Disable per-primitive software fallback — отключение программной отрисовки для отдельных примитивов. Промежуточные целевые буферы программной визуализации и другая программная визуализация не может быть отключена.

  • Disable high-quality image rescalingWPF — изменяет масштаб больших изображений для улучшения их внешнего вида, если они отображаются в уменьшенном размере. Для этой операции требуются значительные ресурсы, особенно в приложениях, содержащих множество больших изображений, которые отображаются в уменьшенном размере на экране. Данный параметр позволяет отключить масштабирование, чтобы определить, является ли оно источником проблемы производительности. Чтобы избежать этой проблемы, рассмотрите возможность изменения кода изображений таким образом, чтобы их размер соответствовал размеру, в котором они отображаются.

  • Disable 3D rendering — выключение операций трехмерного рисования.

Visual Profiler

Visual Profiler — это средство анализа производительности, которое используется для профилирования работы служб WPF, таких как разметка и обработка событий, по элементам визуального дерева. Анализируя выходные данные профилирования, полученные с помощью этого средства, можно определить, какие визуальные элементы приложения могут быть причиной "узких мест" производительности. В главном окне Visual Profiler отображается набор параметров, которые позволяют определить способ профилирования приложения.

  • Update interval. Частота сбора данных, используемая при профилировании.

  • Display overlay. Параметр наложения отображаемых областей позволяет наглядно продемонстрировать использование ресурсов процессора — более темные области красного цвета указывают на более интенсивное использование ресурсов ЦП.

Значение визуального профилирования

Средство Visual Profiler системы WPF представляет проблемы производительности в контексте базовых стандартных блоков, которые используются для построения визуальных объектов приложения. Эти стандартные блоки включают как объекты верхнего уровня, например элементы управления Button и TextBlock, так и объекты нижнего уровня, такие как элементы Line и Ellipse. Вместо описания проблем производительности в терминах графов вызовов для имен функций, Visual Profiler описывает эти проблемы, используя представление визуальных объектов. Это аналогично представлению информации средством UI Spy пакета Пакет средств разработки программного обеспечения. Дополнительные сведения см. в разделе UI Spy (UISpy.exe).

Чтобы проанализировать серьезность проблем производительности WPF, необходимо понимать роль и область действия служб WPF. Эти службы включают макет, визуализацию и анимацию. Visual Profiler создает графическое представление распределения служб WPF между объектами приложения. Например, при отображении визуального дерева объектов приложения средство Visual Profiler с помощью различных оттенков красного цвета показывает относительный объем ресурсов, используемых объектом. Более темный оттенок красного представляет объект, который использует большее количество ресурсов, чем объект с менее темным оттенком красного. Более того, Visual Profiler предоставляет декомпозицию количества конкретных ресурсов WPF, потребляемых объектом.

Использование средства Visual Profiler

Для использования средства Visual Profiler необходимо нажать кнопку Start Profiling и выбрать Launch или Attach. Чтобы использовать параметр Attach, средство WPFPerf и профилируемое приложение должны быть запущены с правами администратора. Кроме того, при использовании параметра Attach выключается функция наложения оттенков красного, а кроме того, доступны не все события. Рекомендуется использовать параметр Launch.

На вкладке "Events" можно выбрать приложение и события элементов, профилирование которых необходимо выполнить.

Ниже перечислены события приложения, профилирование которых можно включить или выключить в конфигурации Visual Profiler. События, являющиеся методами, представляются именем метода, за которым следует имя класса в скобках. Например, Tick (TimeManager) представляет метод TimeManager.Tick.

События приложения

Описание

RenderMessageHandler (MediaContext)

Инициализирует проход визуализации. Вызывает методы TimeManager.Tick и MediaContext.Render, а также другие методы.

Rendering Thread

Возникает при выполнении инструкций визуализации в потоке визуализации. Это событие полезно для обнаружения приложений, связанных в визуализацией.

Layout

Возникает во время прохода измерения, компоновки или визуализации.

UpdateRealizations

Возникает при обновлении внутренних точечных представлений эффектов текста или точечного рисунка.

Tick (TimeManager)

Происходит при смене кадров анимации. Данное событие может инициировать запуск обработчика визуализации анимации.

UpdateEffectiveValue (DependencyObject)

Происходит при изменении обработчиком свойств значения DependencyProperty.

Проверка нажатия

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

AnimatedRenderMessageHandler (MediaContext)

Если анимация включена, данный обработчик обрабатывает и обновляет анимацию, что вызывает изменение свойств, которое, в свою очередь, приводит к визуализации.

Render (MediaContext)

Возникает во время прохода визуализации. Данный метод фактически вызывает метод OnRender каждого элемента, и его полезно использовать для определения общих затрат метода OnRender для всех элементов. Данное событие соответствует методу MediaContext.Render в файле Visual Studio Profiler (VSP).

FormatLineInternal (TextFormatterImp)

Возникает при форматировании текста.

MarkVisibleRealizations (Visual)

Возникает при обнаружении внутренних точечных представлений текста, а также при необходимости обновления эффектов точечного рисунка.

Ниже перечислены события элементов, профилирование которых можно включить или выключить в конфигурации Visual Profiler.

События элементов

Описание

Layout

Возникает во время прохода измерения, компоновки или визуализации.

MarkVisibleRealizations (Visual)

Возникает при обнаружении внутренних точечных представлений текста, а также при необходимости обновления эффектов точечного рисунка.

UIElement.OnRender

Операции визуализации UIElement.

UIElement Layout

Операции компоновки UIElement.

После завершения выбора приложения и параметров профилирования нажмите кнопку OK, чтобы начать профилирование приложения.

Запустите параллельно приложение и средство Visual Profiler и зарегистрируйте изменение значений в средстве. Разворачивая иерархию визуального дерева, можно выбрать конкретный визуальный объект для профилирования, например элемент управления "сетка". В разделе CPU Usage средства Visual Profiler предоставлена точная декомпозиция использования служб WPF по объектам и приложениям. Данные раздела CPU Utilization для элемента включают следующие значения:

  • Inclusive Time — использование ЦП для элемента и всех его потомков.

  • Exclusive Time — использование ЦП только для элемента.

Вывод на экран данных Visual Profiler
Отображение данных Visual Profiler

Средство Visual Profiler накладывает различные оттенки красного на объекты визуального дерева, чтобы представить относительный объем ресурсов, используемых объектом. Более темный оттенок красного представляет объект, который использует большее количество ресурсов, чем объект с менее темным оттенком красного.

Working Set Analyzer

Working Set Analyzer — это средство анализа производительности WPF, которое предоставляет сведения об использовании памяти конкретным процессом. Данное средство позволяет создать моментальный снимок сведений об использовании памяти приложением в определенном состоянии приложения.

Рабочий набор приложения

Рабочий набор приложения — это набор страниц его виртуального адресного пространства, к которым происходило обращение в последнее время. Он включает как общие, так и частные данные. К общим данным относятся страницы, которые содержат все инструкции, выполняемые приложением, в том числе инструкции из пользовательских и системных библиотек DLL. При увеличении размера рабочего набора растут требования к памяти. Дополнительные сведения о рабочем множестве см. в разделе Рабочее множество процесса.

Средство дампа виртуальных адресов (VaDump)

Средство дампа виртуальных адресов (VaDump) создает листинг, содержащий сведения об использовании памяти конкретным процессом. Это средство расположено в следующем каталоге:

~\Program Files\Microsoft Visual Studio 8\Common7\Tools\Bin\winnt

Aa969767.alert_caution(ru-ru,VS.90).gifВажное примечание.

Следует убедиться, что системный путь выполнения включает каталог, в котором расположен VaDump. В противном случае Working Set Analyzer будет работать неправильно.

Использование средства Working Set Analyzer

Для использования средства Working Set Analyzer запустите приложение WPF, профилирование которого следует выполнить. После запуска Working Set Analyzer выберите параметр Select Process:

Диалоговое окно выбора процесса Working Set Analyzer
Главное окно средства просмотра рабочего набора

Выберите рабочий процесс, рабочий набор которого необходимо проанализировать; затем нажмите кнопку Capture. Сначала Working Set Analyzer вызывает средство VaDump для создания сведений об использовании памяти. Затем выполняется синтаксический анализ этих сведений и их представление в графическом формате.

Aa969767.alert_note(ru-ru,VS.90).gifПримечание.

Данные рабочего набора являются статическим представлением использования памяти. Можно создать несколько наборов данных рабочего набора в различных состояниях приложения и сравнить изменения в использовании памяти.

Когда данные рабочего набора готовы для просмотра, средство Working Set Analyzer создает представление в виде дерева, которое включает динамические данные, системные данные и модули приложения.

Категории использования памяти средства Working Set Analyzer
Категории использования средства просмотра рабочего набора

Для приложений WPF категория модулей WPF содержит модули, относящиеся к системе клиента WPF. Щелкните категорию, которую необходимо отобразить, после чего появится набор круговых диаграмм. Например, если щелкнуть категорию модулей WPF, в левой области окна отобразится следующая информация.

Working Set Analyzer: круговая диаграмма использования памяти для модулей WPF
Использование памяти средством просмотра рабочего набора

Заголовок в верхней части окна показывает общий размер категории рабочего набора. В данном случае показано, что модули WPF использую 9160 КБ памяти. На этой диаграмме отображается индивидуальное использование памяти для каждого модуля, входящего в категорию модулей WPF.

Aa969767.alert_note(ru-ru,VS.90).gifПримечание.

Размер категории использования памяти отражает использование памяти приложением в момент создания данных рабочего набора.

В небольшой таблице представлено использование общих, совместно используемых и частных байтов памяти.

Таблица использования памяти средства Working Set Analyzer
Использование памяти средством просмотра рабочего набора

Категория общих байтов представляет объем памяти, который потенциально может использоваться другими приложениями WPF.

Просмотр использования памяти приложения

Чтобы просмотреть использование памяти для приложения, выберите имя исполняемого файла из категории "Other Modules" дерева рабочего набора.

Категории использования памяти средства Working Set Analyzer
Категории использования средства просмотра рабочего набора

Сохранение и повторная загрузка файлов Working Set Analyzer

Чтобы сохранить данные текущего рабочего набора, выберите в главном меню Working Set Analyzer пункт "File". Затем нажмите кнопку Save VADump output. После сохранения данных рабочего набора можно создать новый моментальный снимок использования памяти, нажав кнопку Capture. Чтобы загрузить файл, содержащий данные VADump, выберите в главном меню Working Set Analyzer пункт "File". Затем нажмите кнопку Open VADump output.

Использование таймера для фиксации данных рабочего набора

Working Set Analyzer предоставляет функцию задержки по времени, которая позволяется фиксировать сведения об использовании памяти рабочего набора по истечении определенного интервала. В главном меню средства Working Set Analyzer выберите пункт Actions. Затем нажмите кнопку Launch Process….

Укажите приложение, которое необходимо запустить; при необходимости используйте кнопку Browse. После этого введите все аргументы для приложения. Наконец, введите количество секунд, по истечении которых необходимо собрать данные об использовании памяти. Затем нажмите кнопку Launch. В строке состояния в нижней части окна Working Set Analyzer выполняется обратный отсчет секунд, оставшихся до сбора данных. Это позволяет изменить состояние приложения. После завершения фиксации данных в строке состояния отображается сообщение "Done".

Event Trace

Трассировка событий Windows является эффективным средством трассировки уровня ядра, которое позволяет регистрировать события ядра или события, определенные в приложении. События можно использовать в реальном времени или из файла журнала. Они применяются при отладке приложения или для определения проблем производительности, возникающих в приложении. Средство Event Trace системы WPF использует трассировку событий Windows для регистрации событий в журнале. Дополнительные сведения о трассировке событий Windows см. в разделе Трассировка событий.

Event Trace является компонентом пакета средств профилирования производительности WPFPerf (WpfPerf.exe) системы WPF. Дополнительные сведения см. в разделе Использование средство профилирования производительности.

Использование средства Event Trace

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

Главное окно Event Trace
Главное окно Event Trace

Добавление нового средства ведения журнала событий

Чтобы добавить новое средство ведения журнала событий, нажмите кнопку Add в главном окне Event Trace. Откроется диалоговое окно Add New Logger, в котором отображается набор сведений для определения. Поле Logger Name относится к понятному имени средства ведения журнала. Выберите один из четырех типов средств ведения журнала событий из раскрывающегося списка GUID:

  • NT Kernel Logger

  • Common Language Runtime Garbage Collection

  • Windows Presentation Foundation - Performance Only

  • Windows Presentation Foundation -All

Имеется два типа средств ведения журнала WPF. Версия "Performance Only" является сокращенным поднабором версии "All". В поле Log File можно определить имя файла журнала событий. Чтобы определить имя файла, нажмите кнопку с многоточием ("…"). По умолчанию для файлов журнала событий используется расширение ETL.

Параметр Level позволяет установить один из перечисленных ниже уровней серьезности. Более высокий уровень подразумевает, что будут получены также события более низких уровней. Например, при задании уровня 3 пользователь получает события предупреждений, ошибок и неустранимых ошибок.

Уровень

Описание

1

События аварийного выхода или завершения.

2

События серьезных ошибок.

3

События предупреждений, например сбой выделения памяти.

4

События, не связанные с ошибками, например события входа или выхода.

5

События подробной трассировки.

Параметр Flags задает класс событий WPF. В общем случае можно использовать значение по умолчанию.

Завершив создание сведений о ведении журнала событий, нажмите кнопку Add в диалоговом окне Add New Logger, чтобы добавить средство ведения журнала в Event Trace. Можно создать дополнительные средства ведения журнала событий и добавить их в Event Trace. После добавления всех средств ведения журнала событий нажмите кнопку Done.

Диалоговое окно "Add New Logger"
Диалоговое окно “Добавить новое средство ведения журнала”

Чтобы удалить определенное средство ведения журнала событий, выберите его в списке и нажмите кнопку Remove. Чтобы удалить все средства ведения журнала событий, нажмите кнопку Clear.

Включение ведения журнала событий

Выберите средство ведения журнала событий из списка средств ведения журнала событий в главном окне Event Trace. Нажмите кнопку Start, чтобы включить ведение журнала. Для состояния выбранного средства ведения журнала событий должно отображаться значение "Enabled".

Главное окно Event Trace с выбранным средством ведения журнала событий
Главное окно Event Trace со средствами ведения журнала событий

Завершив регистрацию событий приложения в журнале, нажмите кнопку Stop. Чтобы убедиться в успешной записи событий в журнале, можно просмотреть файл журнала событий. Для этого нажмите кнопку Open Log.

Главное окно Event Trace со сведениями журнала событий
Главное окно Event Trace с информацией о регистрации событий

Для каждого события в файле журнала событий представлено пять столбцов.

Столбец

Описание

Время

Текущее время в квантах ЦП.

Guid

Идентификатор GUID, соответствующий событию.

Имя

Имя события.

Тип события

Информационное событие (Info), событие запуска (Start) или окончания (End). Событие запуска имеет соответствующее событие окончания.

Данные

Данные, относящиеся к конкретному типу события.

Сведения журнала событий в этом формате использовать не очень удобно. Для анализа выходных данных файла журнала событий, созданного с помощью средства Event Trace, следует использовать средство профилирования ETW Trace ViewerWPF.

ETW Trace Viewer

Трассировка событий Windows предоставляет механизм трассировки и регистрации событий, создаваемых приложением в пользовательском режиме. Благодаря трассировке событий Windows, реализованной в операционной системе Windows, разработчики получают быстрый, надежный и универсальный набор функций трассировки событий. Средство Event Trace позволяет записывать, отображать и искать файлы журнала трассировки событий Windows в формате пользовательского интерфейса, относящимся к функциям WPF.

Главное окно ETW Trace Viewer
Главное окно Trace Viewer

Использование средства ETW Trace Viewer

Файл журнала трассировки событий Windows, созданный с помощью средства профилирования Event Trace системы WPF можно просмотреть. По умолчанию для файлов журнала событий используется расширение ETL. В главном меню средства ETW Trace Viewer выберите пункт File. Затем нажмите кнопку Open, чтобы загрузить требуемый файл журнала.

Главное окно ETW Trace Viewer с файлом журнала
Главное окно Trace View с журналом событий

После загрузки файла журнала в окне ETW Trace Viewer отображается временная шкала, представляющая продолжительность записи журнала событий. Можно выбрать единицу измерения для этой временной шкалы — секунды или миллисекунды. Включая или выключая конкретные типы событий, можно выбрать типы событий, которые требуется просмотреть. Если необходимо просмотреть небольшое количество типов событий, можно нажать кнопку Disable All, чтобы выключить все события, а затем установить флажки для событий, которые следует включить. Типы событий, включенные для временной шкалы, отображаются в правом нижнем углу окна ETW Trace Viewer.

Можно щелкнуть и перетащить указатель мыши по временной шкале, чтобы просмотреть только те события, которые произошли в выбранной области шкалы. Чтобы увеличить выбранную область временной шкалы, щелкните ее правой кнопкой мыши. Откроется всплывающее меню, показанное на следующем снимке экрана.

Главное окно ETW Trace Viewer с всплывающим меню
Главное окно Trace View с журналом событий

Всплывающее меню позволяет увеличить или уменьшить временную шкалу, а также показать все события и снять выделение с выбранной в данный момент области временной шкалы. При увеличении временной шкалы интервал времени, отображаемый синим цветом, указывает длину увеличенной шкалы. Интервал времени, отображаемый ниже черным цветом, указывает время относительно общей продолжительности записи журнала событий.

Главное окно ETW Trace Viewer с увеличенными данными
Главное окно Trace View с журналом событий

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

Создание файла журнала событий

С помощью средства ETW Trace Viewer можно также создать файл журнала трассировки событий Windows. Для этого следует нажать кнопку Start capture, чтобы начать запись в журнал, и кнопку Stop capture для завершения записи. Средство ведения журнала событий, создаваемое этим методом, не позволяет настраивать параметры для фильтрации событий. Для создания пользовательского средства ведения журнала событий используйте средство Event Trace.

Другие ресурсы средства производительности

Windows Presentation Foundation (WPF) также обеспечивает поддержку трассировки отладки.

Поддержка отладочной трассировки для WPF

Класс PresentationTraceSources обеспечивает поддержку трассировки отладки для приложений Windows Presentation Foundation (WPF). Трассировка — это система диагностики, с помощью которой можно отслеживать ход выполнения приложения. Операторы трассировки возвращают сведения, как при частом использовании метода WriteLine. Однако операторы трассировки можно включать и отключать при помощи файла конфигурации. Кроме того, можно настраивать выходные данные операторов трассировки.

Сведения о других связанных классах диагностики .NET Framework см. в разделе System.Diagnostics.

См. также

Основные понятия

Улучшение производительности приложений WPF

Уровни графической отрисовки

Обзор графической визуализации Windows Presentation Foundation

UI Spy (UISpy.exe)