Состояния потоков XNU имеют цветовую маркировку в Xcode/Instruments

StackOverflow https://stackoverflow.com//questions/12709995

Вопрос

Я провожу некоторый анализ многопоточного приложения с помощью инструментов Apple Instruments, которые дают много информации, которую я пытаюсь понять.Я пытаюсь найти хороший ресурс для описания состояний потока, которые в инструменте обозначены цветом.Я просматривал документацию и книги по XNU Kernel, но без особого успеха.

Много желтого и фиолетового цвета, которые соответствуют режимам «Вытеснение» и «Супервизор» (полная таблица цветов описана в правом верхнем всплывающем окне на прикрепленном изображении).Учитывая, что я провожу так много времени в этих состояниях, а не в «работающем» состоянии (отмечено синим), мне было бы особенно интересно узнать, о чем они говорят и возможно ли/желательно минимизировать время, проведенное в этих состояниях. .

enter image description here

Это было полезно?

Решение

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

Супервизор = Ваш поток находился в режиме ядра.Обычно это означает, что ядро ​​обслуживало системный вызов, сделанный вашим потоком.

Ни один из них не является строго плохим, но:

Как избежать упреждения:Здесь вы мало что можете сделать, кроме игры со своим приоритетом — увеличьте свой приоритет, используя отрицательное значение nice или, напрямую, используя API setpriority.Вы также можете использовать политики планирования, чтобы повысить предпочтения вашего потока, и уговорить планировщика Маха (основного лица, принимающего решения о потоках) поставить ваши потоки на первое место и дать им больше процессорного времени.

Отказ от режима супервизора:Возможно, вы перегружены системными вызовами.Опять же, это не обязательно плохо.

Надеюсь это поможет,

ТГ

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top