Skip to content

Conversation

@dpr0
Copy link

@dpr0 dpr0 commented Jul 31, 2019

  • Убрал поиск по айди пользователя, без надобности многократно проходивший по всему массиву
  • Переписал все за один проход, избавившись от многих ненужных лишних итераций
  • Выкинул все неиспользуемое чтоб кушало меньше памяти
  • Заменил строки в хэшах на ключи, для оптимальнейшей работы с памятью
  • Отключил гарбаджколлектор
  • Убрал парсер дат за ненадобностью
  • Избавился от прожорливых регулярок
  • Заменил json на multijson
  • прилично сократить число строк кода и убрав документацию, сделав его самодокументируемым

Copy link
Collaborator

@spajic spajic left a 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 секунды и уложиться в заданный бюджет.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Эм, а что, начальное значение было 57 секунд?
Если так, видимо не полный файл использовался.

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

Вот какие проблемы удалось найти и решить:
- Убрал поиск по айди пользователя, без надобности многократно проходивший по всему массиву
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Хотелось бы видеть в case-study больше подробностей о том, что конкретно выдал профилировщик, как вы это интерпретировали, как исправили и какой получили результат. По шагам.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

В следующем задании надо будет так и сделать.

- Отключил гарбаджколлектор
- Убрал парсер дат за ненадобностью
- Избавился от прожорливых регулярок
- Заменил json на multijson
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Какой профит дало? Из отчёта непонятно. И так по каждому пункту.

@vkurennov vkurennov closed this Jan 24, 2020
smaximov added a commit to smaximov/rails-optimization-task1 that referenced this pull request Oct 4, 2020
smaximov added a commit to smaximov/rails-optimization-task1 that referenced this pull request Oct 4, 2020
kevin-glare pushed a commit to kevin-glare/rails-optimization-task1 that referenced this pull request Apr 21, 2021
kevin-glare pushed a commit to kevin-glare/rails-optimization-task1 that referenced this pull request Apr 22, 2021
stashevgenij added a commit to stashevgenij/rails-optimization-task1 that referenced this pull request Jun 23, 2022
hayah pushed a commit to hayah/rails-optimization-task1 that referenced this pull request Mar 5, 2023
hayah pushed a commit to hayah/rails-optimization-task1 that referenced this pull request Mar 5, 2023
berkovichpavel pushed a commit to berkovichpavel/rails-optimization-task1 that referenced this pull request Mar 8, 2023
araslanov-e added a commit to araslanov-e/rails-optimization-task1 that referenced this pull request Jan 26, 2025
aushev-dev added a commit to aushev-dev/rails-optimization-task1 that referenced this pull request Feb 1, 2025
aushev-dev added a commit to aushev-dev/rails-optimization-task1 that referenced this pull request Feb 1, 2025
aushev-dev added a commit to aushev-dev/rails-optimization-task1 that referenced this pull request Feb 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants