Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье содержатся сведения о отчетах в редакторе потоков Concurrency Visualizer.
Отчет о профиле времени блокировки
Отчеты профиля предоставляют статистические данные о времени блокировки для стеков вызовов, относящихся к каждой категории блокировки (например, "I/O" или "Синхронизация"). В отчете по прерываниям перечислены процессы, которые прерывали текущий процесс, вместе с количеством случаев прерывания. Чтобы создать отчет профиля блокировки, средство собирает блокирующие вызовы API и накапливает их в дерево стеков вызовов. Данные, отображаемые в этих отчетах, зависят от текущего диапазона времени, скрытых потоков и по следующим двум фильтрам, которые могут быть применены:
Если выбрано «Только мой код», отображаются только кадры стека с пользовательским кодом, а также уровни на один ниже пользовательского кода.
Если задано значение уменьшения шума, стеки, имеющие частоту меньше указанной, пропускаются.
Разверните любую запись дерева вызовов, чтобы найти строку кода, в которой затрачено время блокировки. Чтобы найти строку источника для записи, в контекстном меню выберите "Вид источника". Чтобы найти строку кода, вызываемую этим, в контекстном меню выберите пункт "Просмотреть сайты звонков". Если доступен только один сайт вызова, команда подключается к выделенной строке кода для сайта вызова. Если доступны несколько сайтов вызовов, команда открывает диалоговое окно, в котором можно выбрать запись, а затем нажмите кнопку "Перейти к источнику ", чтобы найти выделенный сайт вызова. Чаще всего рекомендуется просматривать исходный код для точки вызова с наибольшим количеством экземпляров, наибольшей продолжительностью времени или как того, так и другого.
Блокировка столбцов отчета о времени
В следующей таблице показаны столбцы для каждого отчета о блокирующем времени.
| Имя столбца | Description |
|---|---|
| Имя | Имя функции для каждого уровня стека вызовов. |
| Экземпляры | Количество случаев блокирующего вызова для видимого периода времени. |
| Инклюзивное время блокировки | Общее время блокировки, затраченное на все стеки, которые достигают этого уровня дерева вызовов. Инклюзивное число — это сумма монопольного времени блокировки для этой функции и эксклюзивное время блокировки для всех дочерних узлов. |
| Эксклюзивное время блокировки | Полное время блокировки, когда эта функция находится на самом нижнем уровне стека вызовов. Уникальная запись в стеке вызовов с высоким эксклюзивным временем блокировки может представлять интерес. |
| Категория API/Ожидание | Отображается только для функций на самом низком уровне стека вызовов. Где распознается сигнатура блокирующего вызова, предоставляется имя заблокированного API. Если подпись не распознается, предоставляется информация, сообщаемая ядром. |
| Сведения | Полностью квалифицированное имя функции. Это включает число строк, когда оно доступно. |
Synchronization
В отчете синхронизации показаны вызовы, которые являются причиной сегментов, блокируемых на синхронизации, и суммарное время блокировки каждого стека вызовов. Дополнительные сведения см. в разделе "Время синхронизации".
Спать
В отчете "Спящий режим" показаны вызовы, которые отвечают за блокировку времени, которое было связано с временем, которое было потрачено на спящий режим, и агрегатное время блокировки каждого стека вызовов. Дополнительные сведения см. в разделе "Время сна".
I/O
В отчёте ввода-вывода показаны вызовы, которые отвечают за сегменты, блокирующиеся на операциях ввода-вывода, и совокупное время блокировки каждого стека вызовов. Дополнительные сведения см. в разделе "Время ввода-вывода" (представление потоков).
Управление памятью
В отчете "Управление памятью" показаны вызовы, которые отвечают за сегменты, блокирующие операции управления памятью, а также агрегатное время блокировки каждого стека вызова. Дополнительные сведения см. в разделе "Время управления памятью".
Прерывание
В отчете о вытеснении перечислены процессы, которые вытеснили текущий процесс, вместе с числом экземпляров. Вы можете развернуть каждый процесс, чтобы просмотреть определенные потоки, заменившие потоки в текущем процессе, и просмотреть разбивку случаев прерывания по потокам. Этот блокирующий отчет менее полезен, чем другие, так как вытеснение накладывается операционной системой, а не проблемой в вашем коде. Дополнительные сведения см. в разделе "Время предварительного прерывания".
Обработка пользовательского интерфейса
В отчете об обработке пользовательского интерфейса представлены вызовы, которые ответственны за блокировку сегментов, препятствующих обработке пользовательского интерфейса, а также суммарное время блокировки каждого стека вызовов. Дополнительные сведения см. в разделе "Время обработки пользовательского интерфейса".
Отчет об операциях с дисками (вид потоков)
В отчете по операциям с дисками отображаются операции ввода-вывода диска в каналах дисков.
Для каждого доступа к диску, который происходит от имени процесса, профилируемого в текущем видимом окне времени, эта информация сообщается:
Имя и ИДЕНТИФИКАТОР процесса, выполняющего доступ к диску
Идентификатор потока, который обращался к диску
Имя файла, к которому был доступ
Количество операций чтения для каждого файла
Количество прочитанных байтов
Задержка чтения в миллисекундах
Количество операций записи
Число записанных байтов
Задержка записи в миллисекундах
Отчет профиля исполнения
Отчет профиля выполнения — это традиционный профиль выборки. Образцы берутся примерно каждую миллисекунду во время выполнения потока на логическом ядре, а Concurrency Visualizer строит типичное дерево вызовов путем сопоставления накопленных наборов выборок стека. Данные в этой таблице могут быть подвержены влиянию текущего диапазона времени и скрытых потоков, а также фильтров, которые могут быть применены:
Если выбрано "Только мой код" (Just My Code), отображаются только кадры стека с пользовательским кодом, плюс один дополнительный уровень ниже пользовательского кода.
Если установлен параметр уменьшения шума, сгруппированные стеки с частотой ниже заданной отфильтровываются из отчета.
В следующей таблице показаны столбцы в отчете.
| колонна | Description |
|---|---|
| Имя | Имя функции для каждого уровня стека вызовов. |
| Инклюзивные примеры | Общее количество примеров, собранных для всех стеков, которые свернуты на этом уровне дерева стека вызовов. Инклюзивное число представляет собой сумму эксклюзивных образцов для этой функции и инклюзивных счетчиков для всех её дочерних узлов. |
| Эксклюзивные примеры | Общее количество собранных примеров, для которых эта функция является самым низким уровнем стека вызовов. |
| % включительно | Процент общих выборок, отображаемых в столбце инклюзивных примеров. Проценты округляются до двух десятичных разрядов. |
| % Эксклюзив | Процент общих выборок, отображаемых в столбце эксклюзивных примеров. Проценты округляются до двух десятичных разрядов. |
| Сведения | Полностью квалифицированное имя функции. Это включает число строк, когда оно доступно. |
Эта таблица отчета можно увидеть в представлении времени выполнения (представление потоков).
Отчет о маркерах
В отчете "Маркеры" перечислены маркеры в отображаемом интервале времени. Панорамирование, масштабирование или скрытие полос может привести к появлению или исчезновению маркеров. Отчет содержит эти сведения о каждом маркере:
Время начала события относительно начала трассировки.
Его длительность. Длительность равна нулю для флагов и сообщений, так как они представляют мгновенное значение.
Идентификатор потока, создающего его.
Поставщик отслеживания событий для Windows (ETW), создающий его.
Серия маркеров, из которой она была написана.
Категория событий, к которой она принадлежит.
Его уровень важности.
Его тип (диапазон, флаг или сообщение).
Высокоуровневое описание того, что он представляет
Нажмите кнопку "Экспорт ", чтобы сохранить отчет маркеров в виде CSV-файла. Данные в CSV-файле можно использовать с другими приложениями или инструментами.
Замечание
Отчет о маркерах может отображать 1000 маркеров. Чтобы просмотреть все маркеры, экспортируйте полный отчет в CSV-файл.
Сводный отчет по потоку
На этой столбчатой диаграмме показано, какую долю времени каждый видимый поток проводит в каждой категории действий в течение текущего видимого диапазона времени. "Выполнение" означает, что поток выполняется; все остальные категории означают, что поток ждет чего-то.