Отчеты в представлении "Потоки" в визуализаторе параллелизма
В этой статье содержатся сведения об отчетах в представлении "Потоки" визуализатора параллелизма.
Отчет профиля времени блокировки
В отчетах о профилях содержатся сводные данные о времени блокировок для стеков вызовов по каждой из категорий блокировок (например, "Ввод-вывод" или "Синхронизация"). В отчете о вытеснении выводится список процессов, которые вытесняли текущий процесс, а также количество вытеснений. Для построения отчета по профилю блокировки инструмент собирает информацию о блокирующих вызовах интерфейса API и размещает ее в дереве стеков вызовов. На данные в этих отчетах может повлиять текущий диапазон времени, скрытые потоки и следующие два фильтра, которые могут быть применены.
Если выбран параметр "Только мой код", будут представлены только кадры стека, у которых есть пользовательский код, а также кадры на уровень ниже пользовательского кода.
Если задано значение для снижения уровня шума, разобранные стеки с частотой ниже заданной пропускаются.
Разверните какой-либо узел дерева вызовов, чтобы найти строку кода, в которой затрачено время на блокировку. Чтобы найти строку исходного кода для данной записи, выберите в ее контекстном меню пункт Просмотреть исходный код. Для поиска строки кода, вызвавшей данную строку, в контекстном меню выберите команду Просмотреть сайты вызова. Если доступен только один сайт вызова, команда подключится к выделенной строке кода для сайта вызова. Если доступно несколько сайтов вызова, команда откроет диалоговое окно, в котором можно выбрать сайт, а затем нажать кнопку Перейти к источнику, чтобы перейти на выделенный сайт вызова. Зачастую полезнее всего просмотреть исходный код для сайта вызова, имеющего больше всего экземплярах, больше всего времени или и то, и другое.
Столбцы отчета о времени блокировки
В приведенной ниже таблице показаны столбцы каждого из отчетов о времени блокировки.
Имя столбца | Description |
---|---|
Имя | Имя функции для каждого уровня стека вызова. |
Экземпляры | Количество экземпляров блокирующего вызова для видимого периода времени. |
Инклюзивное время блокировки | Общее время блокировки, затраченное на все стеки, сведенные к этому уровню дерева стека вызовов. Инклюзивное число — это сумма эксклюзивного времени блокировки для данной функции и эксклюзивного времени блокировки для всех ее дочерних узлов. |
Эксклюзивное время блокировки | Общее затраченное время блокировки, в течение которого данная функция находилась на самом нижнем уровне стека вызовов. Рассматриваемой функцией может быть уникальная запись стека вызова с высоким значением эксклюзивного времени блокировки. |
API и категория ожидания | Отображается только для функций на самом низком уровне стека вызовов. При распознавании сигнатуры блокирующего вызова предоставляется имя блокирующего интерфейса API. Если сигнатура не распознана, предоставляются сведения, выданные ядром. |
Сведения | Полное имя функции. Содержит число строк, если это значение доступно. |
Синхронизация
В отчете о синхронизации отображаются вызовы, отвечающие за сегменты, заблокированные из-за синхронизации, с указанием совокупного времени блокировки каждого стека вызовов. Дополнительные сведения см. в статье Время синхронизации.
Sleep
Отчет о спящем режиме показывает вызовы, отвечающие за время блокировки, отмеченное как время, проведенное в спящем режиме, а также совокупное время блокировки для каждого стека вызовов. Дополнительные сведения см. в статье Время ожидания.
ВВОД-ВЫВОД
В отчете о вводе-выводе отображаются вызовы, отвечающие за сегменты, операциями ввода-вывода, с указанием совокупного времени блокировки каждого стека вызовов. Дополнительные сведения см. в статье Время ввода-вывода (представление "Потоки").
Управление памятью
В отчете об управлении памятью отображаются вызовы, отвечающие за сегменты, операциями управления памятью, с указанием совокупного времени блокировки каждого стека вызовов. Дополнительные сведения см. в статье Время управления памятью.
Вытеснение
В отчете о вытеснении выводится список процессов, которые вытесняли текущий процесс, а также количество вытеснений. Можно развернуть каждый процесс для просмотра тех потоков, которые вытесняли потоки текущего процесса, а также для просмотра распределения вытеснений для каждого потока. Этот отчет о блокировках имеет меньшее практическое значение, чем другие, так как вытеснение процесса чаще инициируется операционной системой, а не ошибкой в коде пользователя. Дополнительные сведения см. в статье Время вытеснения.
Обработка пользовательского интерфейса
В отчете об обработке пользовательского интерфейса отображаются вызовы, отвечающие за сегменты, которые блокируют блоки обработки пользовательского интерфейса, с указанием совокупного времени блокировки каждого стека вызовов. Дополнительные сведения см. в статье Время обработки пользовательского интерфейса.
Отчет операций диска (представление потоков)
В отчете операций диска показаны дисковые операции ввода-вывода в каналах диска.
Для каждого типа доступа к диску, выполняемого от имени процесса, профилируемого в текущем периоде, выводятся следующие сведения:
имя и идентификатор процесса, который обращался к диску;
идентификатор потока, который обращался к диску;
имя файла, к которому был получен доступ;
число операций чтения на файл;
количество считанных байтов;
задержка чтения в миллисекундах;
число операций записи;
число записанных байтов;
задержка записи в миллисекундах.
Отчет "Профиль выполнения"
Отчет о профиле выполнения — это традиционный профиль выборки. Выборка выполняется приблизительно каждую миллисекунду в те периоды, когда поток выполняется на логическом ядре, и визуализатор параллелизма строит типичное дерево вызовов, разбирая накопленный набор стеков выборок. На данные в этой таблице может влиять текущий диапазон времени, скрытые потоки и следующие фильтры, которые могли быть применены:
Если выбран параметр "Только мой код", будут показаны только кадры стека, у которых есть пользовательский код, а также кадры на уровень ниже пользовательского кода.
Если задано значение для снижения уровня шума, разобранные стеки с частотой ниже заданной фильтруются в отчете.
В следующей таблице перечислены столбцы отчета.
Столбец | Описание: |
---|---|
Имя. | Имя функции для каждого уровня стека вызова. |
Включающие выборки | Общее количество выборок, собранных для всех стеков, сведенное в этот уровень дерева стека вызовов. Инклюзивное число — это сумма исключающих выборок для данной функции и инклюзивных счетчиков для всех ее дочерних узлов. |
Исключающие выборки | Общее количество собранных выборок, для которых эта функция является нижним уровнем стека вызовов. |
% включения | Процент от общего количества выборок, которые отображаются в столбце "Включающие выборки". Процентные значения округляются до двух десятичных разрядов. |
% исключения | Процент от общего количества выборок, которые отображаются в столбце "Исключающие выборки". Процентные значения округляются до двух десятичных разрядов. |
Сведения | Полное имя функции. Включает число строк, если это значение доступно. |
Эта таблица отчета может отображаться в представлении Время выполнения (представление "Потоки").
Отчет по маркерам
В отчете о маркерах перечислены маркеры показанного периода времени. Панорамирование, масштабирование или скрытие строк может привести к отображению или исчезновению маркеров. Отчет содержит следующие сведения о каждом маркере.
Время его начала относительно начала трассировки.
Его длительность. Длительность равна нулю для флагов и сообщений, так как они представляют момент времени.
Идентификатор потока, который его создал.
Поставщик отслеживания событий для Windows (ETW), который его создал.
Последовательность маркеров, из которой он был записан.
Категория событий, к которой он принадлежит.
Его уровень важности.
Его тип (диапазон, флаг или сообщение).
Подробное описание того, что он представляет.
Нажмите кнопку Экспорт для сохранения отчета о маркерах как CSV-файла. Можно использовать данные в CSV-файле с другими приложениями и инструментами.
Примечание.
В отчете о маркерах может отображаться 1000 маркеров. Чтобы просмотреть все маркеры, экспортируйте полный отчет в CSV-файл.
Сводный отчет по каждому потоку
На этой гистограмме показана доля времени, которую тратит каждый нескрытый поток в каждой категории в течение видимого в данный момент диапазона времени. "Выполнение" означает, что поток выполняется; все остальные категории означают, что поток находится в состоянии ожидания какого-либо события.