Для работы скрипта требуется Ruby 2.4+
В этом задании надо дооптимизировать задание 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
, что время выполнения скрипта меньше значения, которое чуть больше реального, чтобы не давать ложных срабатываний;
Нужно потренироваться методично работать по схеме с фидбек-лупом:
- построили отчёт каким-то из профилировщиков
- осознали его
- поняли, какая самая большая точка роста
- внесли минимальные изменения, чтобы использовать только эту точку роста
- перестроили отчёт, убедились, что проблема решена
- вычислили метрику - оценили, как изменение повлияло на метрику
- записали полученные результаты
- закоммитились
- перешли к следующей итерации