/task-2

Week 2

Primary LanguageRuby

Note

Для работы скрипта требуется Ruby 2.4+

Задание №2

Описание

В этом задании надо дооптимизировать задание 1й недели с использованием инструментов профилирования CPU и разъяснений, сделанных на 2й лекции.

Что нужно сделать

  • Построить и проанализировать отчёт ruby-prof в режиме Flat;
  • Построить и проанализировать отчёт ruby-prof в режиме Graph;
  • Построить и проанализировать отчёт ruby-prof в режиме CallStack;
  • Построить и проанализировать отчёт ruby-prof в режиме CallTree c визуализацией в QCachegrind;
  • Профилировать работающий процесс rbspy;
  • Построить и проанализировать отчёт flamegraph с помощью rbspy;
  • Добавить в программу ProgressBar;
  • Научиться пользоваться Valgrind massif с massif-visualizer. Построить профиль использования памяти для итоговой версии вашей программы и добавить скриншот в PR;
  • Написать хотя бы самый простой тест на производительность: assert, что время выполнения скрипта меньше значения, которое чуть больше реального, чтобы не давать ложных срабатываний;

Главное

Нужно потренироваться методично работать по схеме с фидбек-лупом:

  • построили отчёт каким-то из профилировщиков
  • осознали его
  • поняли, какая самая большая точка роста
  • внесли минимальные изменения, чтобы использовать только эту точку роста
  • перестроили отчёт, убедились, что проблема решена
  • вычислили метрику - оценили, как изменение повлияло на метрику
  • записали полученные результаты
  • закоммитились
  • перешли к следующей итерации