-
Notifications
You must be signed in to change notification settings - Fork 193
refactoring&&optimization #2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
dpr0
commented
Jul 31, 2019
- Убрал поиск по айди пользователя, без надобности многократно проходивший по всему массиву
- Переписал все за один проход, избавившись от многих ненужных лишних итераций
- Выкинул все неиспользуемое чтоб кушало меньше памяти
- Заменил строки в хэшах на ключи, для оптимальнейшей работы с памятью
- Отключил гарбаджколлектор
- Убрал парсер дат за ненадобностью
- Избавился от прожорливых регулярок
- Заменил json на multijson
- прилично сократить число строк кода и убрав документацию, сделав его самодокументируемым
spajic
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Принимается, но хотелось бы case-study значительно более подробный.
Also было бы хорошо попробовать больше разных профилировщиков и отчётов, а не только ruby-prof.
Also, вызывает сомнение, что исходное значение метрики 57 секунд. По идее на полном объёме данных программа отрабатывает несколько дней.
В общем ещё акцентирую внимание на этих моментах во втором задании.
|
|
||
| ## Защита от регрессии производительности | ||
| Для защиты от потери достигнутого прогресса при дальнейших изменениях программы *о performance-тестах, которые вы написали* | ||
| Удалось улучшить метрику системы с 57 до 11.703119 секунды и уложиться в заданный бюджет. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Эм, а что, начальное значение было 57 секунд?
Если так, видимо не полный файл использовался.
| Для того, чтобы найти "точки роста" для оптимизации я воспользовался встроенным в рубимайн профилировщиком rbspy | ||
|
|
||
| Вот какие проблемы удалось найти и решить: | ||
| - Убрал поиск по айди пользователя, без надобности многократно проходивший по всему массиву |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Хотелось бы видеть в case-study больше подробностей о том, что конкретно выдал профилировщик, как вы это интерпретировали, как исправили и какой получили результат. По шагам.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
В следующем задании надо будет так и сделать.
| - Отключил гарбаджколлектор | ||
| - Убрал парсер дат за ненадобностью | ||
| - Избавился от прожорливых регулярок | ||
| - Заменил json на multijson |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Какой профит дало? Из отчёта непонятно. И так по каждому пункту.