Представление ядер

В Обзоре ядер показано, как выполнение потока сопоставлено с ядрами логических процессоров (выберите Анализ>, затем Визуализатор параллелизма, чтобы его запустить). Если вы пишете серверные приложения, это представление поможет оптимизировать производительность кэша с помощью управления сходством потоков или пулом потоков. Это также может помочь вам изучить случаи, когда использование привязки потоков могло ухудшить проблему миграции между ядрами процессора. Представление "Ядра" состоит из двух частей: диаграммы и легенды.

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

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

Условные обозначения представления ядер

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

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

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

В следующей таблице описаны элементы условных обозначений.

Элемент Definition
Имя потока Отображает цвет потока на временной шкале предыдущих ядер и имя этого потока.
Переключения контекста между ядрами Количество переключений контекста для потока, который также переключился с одного логического ядра на другой. Он не различает переключения контекста через ядро, которые переходят с одного кристалла процессора на другой, от тех, что остаются на том же кристалле.
Общие переключения контекста Общее количество переключений контекста для заданного потока в течение периода выборки. Каждое изменение контекста выполнения потока (например, переход от выполнения к синхронизации) регистрируется как одно переключение контекста.
Процент переключений контекста, происходящих между ядрами Вычисляется в процентах путем деления числа переключений контекста между ядрами на общее количество переключений контекста. Чем выше этот процент, тем больше общий эффект накладных расходов перекрестных переключений контекста на производительность этого конкретного потока.

Временная шкала просмотра ядер

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

Просмотр логических ядер

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

Инструмент масштабирования просмотра ядер

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

Другие способы масштабирования

  • Увеличение: выделите область, перетаскивая в представлении временной шкалы. После отпускания кнопки мыши временная шкала увеличивается на выбранный диапазон.

  • Увеличение масштаба: наведите указатель мыши на временную шкалу и нажмите CTRL, перемещая колесико.