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


Отчеты в представлении "Потоки" в визуализаторе параллелизма

В этой статье содержатся сведения об отчетах в представлении "Потоки" визуализатора параллелизма.

Отчет профиля времени блокировки

В отчетах о профилях содержатся сводные данные о времени блокировок для стеков вызовов по каждой из категорий блокировок (например, "Ввод-вывод" или "Синхронизация"). В отчете о вытеснении выводится список процессов, которые вытесняли текущий процесс, а также количество вытеснений. Для построения отчета по профилю блокировки инструмент собирает информацию о блокирующих вызовах интерфейса API и размещает ее в дереве стеков вызовов. На данные в этих отчетах может повлиять текущий диапазон времени, скрытые потоки и следующие два фильтра, которые могут быть применены.

  • Если выбран параметр "Только мой код", будут представлены только кадры стека, у которых есть пользовательский код, а также кадры на уровень ниже пользовательского кода.

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

    Разверните какой-либо узел дерева вызовов, чтобы найти строку кода, в которой затрачено время на блокировку. Чтобы найти строку исходного кода для данной записи, выберите в ее контекстном меню пункт Просмотреть исходный код. Для поиска строки кода, вызвавшей данную строку, в контекстном меню выберите команду Просмотреть сайты вызова. Если доступен только один сайт вызова, команда подключится к выделенной строке кода для сайта вызова. Если доступно несколько сайтов вызова, команда откроет диалоговое окно, в котором можно выбрать сайт, а затем нажать кнопку Перейти к источнику, чтобы перейти на выделенный сайт вызова. Зачастую полезнее всего просмотреть исходный код для сайта вызова, имеющего больше всего экземплярах, больше всего времени или и то, и другое.

Столбцы отчета о времени блокировки

В приведенной ниже таблице показаны столбцы каждого из отчетов о времени блокировки.

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

Синхронизация

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

Sleep

Отчет о спящем режиме показывает вызовы, отвечающие за время блокировки, отмеченное как время, проведенное в спящем режиме, а также совокупное время блокировки для каждого стека вызовов. Дополнительные сведения см. в статье Время ожидания.

ВВОД-ВЫВОД

В отчете о вводе-выводе отображаются вызовы, отвечающие за сегменты, операциями ввода-вывода, с указанием совокупного времени блокировки каждого стека вызовов. Дополнительные сведения см. в статье Время ввода-вывода (представление "Потоки").

Управление памятью

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

Вытеснение

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

Обработка пользовательского интерфейса

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

Отчет операций диска (представление потоков)

В отчете операций диска показаны дисковые операции ввода-вывода в каналах диска.

Для каждого типа доступа к диску, выполняемого от имени процесса, профилируемого в текущем периоде, выводятся следующие сведения:

  • имя и идентификатор процесса, который обращался к диску;

  • идентификатор потока, который обращался к диску;

  • имя файла, к которому был получен доступ;

  • число операций чтения на файл;

  • количество считанных байтов;

  • задержка чтения в миллисекундах;

  • число операций записи;

  • число записанных байтов;

  • задержка записи в миллисекундах.

Отчет "Профиль выполнения"

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

  • Если выбран параметр "Только мой код", будут показаны только кадры стека, у которых есть пользовательский код, а также кадры на уровень ниже пользовательского кода.

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

    В следующей таблице перечислены столбцы отчета.

Столбец Описание:
Имя. Имя функции для каждого уровня стека вызова.
Включающие выборки Общее количество выборок, собранных для всех стеков, сведенное в этот уровень дерева стека вызовов. Инклюзивное число — это сумма исключающих выборок для данной функции и инклюзивных счетчиков для всех ее дочерних узлов.
Исключающие выборки Общее количество собранных выборок, для которых эта функция является нижним уровнем стека вызовов.
% включения Процент от общего количества выборок, которые отображаются в столбце "Включающие выборки". Процентные значения округляются до двух десятичных разрядов.
% исключения Процент от общего количества выборок, которые отображаются в столбце "Исключающие выборки". Процентные значения округляются до двух десятичных разрядов.
Сведения Полное имя функции. Включает число строк, если это значение доступно.

Эта таблица отчета может отображаться в представлении Время выполнения (представление "Потоки").

Отчет по маркерам

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

  • Время его начала относительно начала трассировки.

  • Его длительность. Длительность равна нулю для флагов и сообщений, так как они представляют момент времени.

  • Идентификатор потока, который его создал.

  • Поставщик отслеживания событий для Windows (ETW), который его создал.

  • Последовательность маркеров, из которой он был записан.

  • Категория событий, к которой он принадлежит.

  • Его уровень важности.

  • Его тип (диапазон, флаг или сообщение).

  • Подробное описание того, что он представляет.

    Нажмите кнопку Экспорт для сохранения отчета о маркерах как CSV-файла. Можно использовать данные в CSV-файле с другими приложениями и инструментами.

Примечание.

В отчете о маркерах может отображаться 1000 маркеров. Чтобы просмотреть все маркеры, экспортируйте полный отчет в CSV-файл.

Сводный отчет по каждому потоку

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