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

Анализ профиля в формате folded stacks

Условие

На stdin первая строка: имя функции. Дальше CPU-профиль в формате folded stacks (как для flame graph): строки кадр1;кадр2;...;кадрN <число сэмплов>, где последний кадр это функция, выполнявшаяся на CPU. Выведите total <всего сэмплов>, затем три функции с наибольшим собственным временем (сэмплы, где функция последний кадр) в формате <процент от всех с 1 знаком> <функция> (при равенстве по имени), и последней строкой inclusive <функция> <процент>%: доля сэмплов, в стеке которых есть заданная функция (каждый стек считается один раз).

Как подойти

Подсказки: 2
  1. split($1, f, ";") разобьёт стек, последний элемент f[n].
  2. Если функция встречается в стеке дважды (рекурсия), считайте стек один раз.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.