Выбор ответа Junior Производительность и профилирование спрашивают часто обновлено

Как читать flame graph

Вопрос

Что означает ширина прямоугольника функции на flame graph CPU-профиля?

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

Выберите вариант, и откроется разбор.

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

Коротко

Правильный ответ: Долю сэмплов, где функция была на стеке. Flame graph агрегирует сэмплы стеков.

Варианты ответа

  1. Время начала и окончания вызова функции на оси времени
  2. Число вызовов функции за время профилирования
  3. Долю сэмплов, где функция была на стекеправильный ответ
  4. Объём памяти, выделенный функцией и её вызовами

Разбор

Flame graph агрегирует сэмплы стеков. Ширина пропорциональна числу сэмплов, ось X не время: соседние функции отсортированы по алфавиту, и порядок слева направо ничего не значит. Число вызовов сэмплирующий профилировщик не знает. Память показывает другой вид профиля (heap, allocations).

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

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