Карточка Middle Производительность и профилирование обновлено

On-CPU и off-CPU

Вопрос

Чем on-CPU профиль отличается от off-CPU?

Попробуйте сами

Ответьте про себя или вслух, потом откройте ответ и сверьтесь.

Показать ответ и разбор

Коротко

On-CPU: где поток выполнялся на процессоре, ищет горячие функции, когда CPU загружен. Off-CPU: где поток был заблокирован (ввод-вывод, блокировки, ожидание сети, сон), ищет причины медленности при свободном CPU.

Ответ

On-CPU: где поток выполнялся на процессоре, ищет горячие функции, когда CPU загружен. Off-CPU: где поток был заблокирован (ввод-вывод, блокировки, ожидание сети, сон), ищет причины медленности при свободном CPU. Вместе они дают полное время запроса.

Разбор

Для Go аналогами off-CPU служат профили block и mutex, для JVM режимы wall-clock и lock в async-profiler.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.