Skip to content

Latest commit

 

History

History
46 lines (29 loc) · 3.27 KB

case-study-template.md

File metadata and controls

46 lines (29 loc) · 3.27 KB

Case-study оптимизации

Актуальная проблема

В нашем проекте возникла серьёзная проблема.

Необходимо было обработать файл с данными, чуть больше ста мегабайт.

У нас уже была программа на ruby, которая умела делать нужную обработку.

Она успешно работала на файлах размером пару мегабайт, но для большого файла она работала слишком долго, и не было понятно, закончит ли она вообще работу за какое-то разумное время.

Я решил исправить эту проблему, оптимизировав эту программу.

Формирование метрики

Для того, чтобы понимать, дают ли мои изменения положительный эффект на быстродействие программы я придумал использовать такую метрику: тут ваша метрика

Гарантия корректности работы оптимизированной программы

Программа поставлялась с тестом. Выполнение этого теста позволяет не допустить изменения логики программы при оптимизации.

Feedback-Loop

Для того, чтобы иметь возможность быстро проверять гипотезы я выстроил эффективный feedback-loop, который позволил мне получать обратную связь по эффективности сделанных изменений за время, которое у вас получилось

Вот как я построил feedback_loop: как вы построили feedback_loop

Вникаем в детали системы, чтобы найти 20% точек роста

Для того, чтобы найти "точки роста" для оптимизации я воспользовался инструментами, которыми вы воспользовались

Вот какие проблемы удалось найти и решить

Ваша находка №1

О вашей находке №1

Ваша находка №2

О вашей находке №2

Ваша находка №X

О вашей находке №X

Результаты

В результате проделанной оптимизации наконец удалось обработать файл с данными. Удалось улучшить метрику системы с того, что у вас было в начале, до того, что получилось в конце

Какими ещё результами можете поделиться

Защита от регресса производительности

Для защиты от потери достигнутого прогресса при дальнейших изменениях программы сделано то, что вы для этого сделали