Conversation
dpr0
commented
Jul 31, 2019
- Убрал поиск по айди пользователя, без надобности многократно проходивший по всему массиву
- Переписал все за один проход, избавившись от многих ненужных лишних итераций
- Выкинул все неиспользуемое чтоб кушало меньше памяти
- Заменил строки в хэшах на ключи, для оптимальнейшей работы с памятью
- Отключил гарбаджколлектор
- Убрал парсер дат за ненадобностью
- Избавился от прожорливых регулярок
- Заменил json на multijson
- прилично сократить число строк кода и убрав документацию, сделав его самодокументируемым
spajic
left a comment
There was a problem hiding this comment.
Принимается, но хотелось бы case-study значительно более подробный.
Also было бы хорошо попробовать больше разных профилировщиков и отчётов, а не только ruby-prof.
Also, вызывает сомнение, что исходное значение метрики 57 секунд. По идее на полном объёме данных программа отрабатывает несколько дней.
В общем ещё акцентирую внимание на этих моментах во втором задании.
|
|
||
| ## Защита от регрессии производительности | ||
| Для защиты от потери достигнутого прогресса при дальнейших изменениях программы *о performance-тестах, которые вы написали* | ||
| Удалось улучшить метрику системы с 57 до 11.703119 секунды и уложиться в заданный бюджет. |
There was a problem hiding this comment.
Эм, а что, начальное значение было 57 секунд?
Если так, видимо не полный файл использовался.
| Для того, чтобы найти "точки роста" для оптимизации я воспользовался встроенным в рубимайн профилировщиком rbspy | ||
|
|
||
| Вот какие проблемы удалось найти и решить: | ||
| - Убрал поиск по айди пользователя, без надобности многократно проходивший по всему массиву |
There was a problem hiding this comment.
Хотелось бы видеть в case-study больше подробностей о том, что конкретно выдал профилировщик, как вы это интерпретировали, как исправили и какой получили результат. По шагам.
There was a problem hiding this comment.
В следующем задании надо будет так и сделать.
| - Отключил гарбаджколлектор | ||
| - Убрал парсер дат за ненадобностью | ||
| - Избавился от прожорливых регулярок | ||
| - Заменил json на multijson |
There was a problem hiding this comment.
Какой профит дало? Из отчёта непонятно. И так по каждому пункту.