Cores View (Представление "Ядра")

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

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

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

Легенда представления "Ядра"

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

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

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

Элементы легенды описаны в следующей таблице.

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

Временная шкала представления "Ядра"

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

Логические ядра представления "Ядра"

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

Средство масштабирования представления "Ядра"

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

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

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

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