Добавление меток пользователей на временную шкалу профилирования (C#, C++)
Пользовательские метки позволяют отслеживать пользовательские события для средств профилирования Visual Studio, добавляя функции разметки пользователей в код. Пользовательские метки отображаются как визуальные знаки на графиках временной шкалы. Это можно сделать для отслеживания одного события или отслеживания диапазона. Например, можно отслеживать диапазон событий stop и start.
Примечание.
Для этой функции требуется Visual Studio 2022 версии 17.11 ( предварительная версия 3). Эта функция доступна в профилировщике производительности, а не во время отладки в Центре диагностики.
Установка и настройка
Вы можете установить поддержку функции с помощью пакета NuGet или добавления правильных исходных файлов.
Установка с помощью пакета NuGet (C#)
Скачайте пакет Microsoft.VisualStudio.DiagnosticsHub.UserMarks.
Установка путем добавления исходных файлов (C#, C++)
После установки Visual Studio откройте следующую папку: [путь установки VS]\Common7\IDE\CommonExtensions\Platform\DiagnosticsHub.
Для кода C# добавьте UserMarks.cs и UserMarksRange.cs в проект.
Для собственного кода C++ добавьте UserMarks.h в проект.
Добавление меток пользователей (C#)
Добавьте следующее определение препроцессора в конфигурацию сборки проекта: DIAGHUB_ENABLE_TRACE_SYSTEM
Чтобы добавить определение в Visual Studio, выполните следующие действия.
Щелкните проект правой кнопкой мыши в Обозреватель решений и выберите пункт "Свойства".
Выберите символы условной > компиляции сборки>.
В полях пользовательских символов для сборок отладки и выпуска добавьте
DIAGHUB_ENABLE_TRACE_SYSTEM
в качестве определения препроцессора.
Добавьте объект меток пользователя и выпустите его. В следующем коде показан пример добавления пользовательских меток.
using Microsoft.DiagnosticsHub;
// Create a user mark
var myUserMark = new UserMarks("MyMark");
// Emit the usermark
myUserMark.Emit("Event happened!");
// Emit statically
UserMarks.EmitMessage("Emitting just a message");
// Emitting a range
using (var myRange = new UserMarkRange("MyMethodRange"))
{
// Your code here
}
Добавление меток пользователей (C++)
Чтобы использовать API собственных пользователей, добавьте UserMarks.h в проект и добавьте в приложение следующий код:
#define DIAGHUB_ENABLE_TRACE_SYSTEM
#include "UserMarks.h"
DIAGHUB_DECLARE_TRACE;
// Start the trace system
DIAGHUB_START_TRACE_SYSTEM();
// Initialize user marks
USERMARKS_INITIALIZE(L"User mark name");
// Initialize user mark range
USERMARKRANGE_INITIALIZE(L"Range name");
// Emit events
USERMARKS_EMIT(L"Message to emit with user mark");
USERMARKRANGE_START(L"Message to emit with range");
USERMARKRANGE_END();
// Stop the trace system
DIAGHUB_STOP_TRACE_SYSTEM();
Просмотр меток пользователя
Откройте проект в Visual Studio, откройте профилировщик производительности (ALT+F2), а затем выберите средство и нажмите кнопку "Пуск ".
Убедитесь, что код метки пользователя, добавленный в приложение, выполняется.
Пользователь помечает линейку над графиком временной шкалы и в таблице со сведениями о метках времени, связанных процессах и всех создаваемых сообщениях.
На временной шкале метка пользователя отображается как инвертированные треугольники.
В области "Сводка" выберите "Показать пользовательские метки", чтобы просмотреть сведения о метке пользователя.
Сведения отображаются на вкладке "Метки пользователей".
Чтобы просмотреть сведения о метке пользователя на временной шкале, наведите указатель мыши на метки в линейке.
Чтобы отфильтровать представление сведений, выберите диапазон времени на графике временной шкалы или щелкните правой кнопкой мыши строку и выберите время начала и окончания, чтобы отфильтровать график временной шкалы.
Вы также можете отфильтровать представление, задав интервалы диапазонов или выбрав несколько пользовательских меток.