-
Notifications
You must be signed in to change notification settings - Fork 44
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
Igor Platonov. Task 8 #15
base: master
Are you sure you want to change the base?
Conversation
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.
Круто! Спасибо за интересные кейсы, всё понятно, здорово оформлено и проиллюстрировано!
Респект за отличное прохождение курса!
Судя по кейсам, пользу уже приносит и греет мне душу 👍
Какого-либо мониторинга тут нет | ||
|
||
## Тесты | ||
С тестами тут дела обстоят плохо. Их вообще перестали поддерживать, а также сами тесты, на мой взгляд, написаны достаточно неоптимальны, да и вообще, как-то непонятно =) |
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.
Печальное начало )
|
||
![first](https://i.ibb.co/94sQ8qJ/r-test-1.jpg) | ||
|
||
То есть, теперь тесты выполняются 7 секунд, вместо 24. Сами тесты не упали, все работает так, как надо. |
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.
Пффф, отличный кейс в копилку ))
|
||
![fourth](https://i.ibb.co/X5vvQPs/r-test-4.jpg) | ||
|
||
Удалось добиться еще лучших результатов. С 7 секунд до 5 |
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.
Круто!
|
||
Оказывается, Dashboard Pg Hero не работает, если режим rails Api Only. | ||
Можно было через консоль получать необходимые данные, через команды, что дает нам Pg Hero — но мне очень хотелось смотреть в дашборд =) | ||
Поэтому я развернул чистый rails приложение, указал там подключение к нужной нам бд, установил PG Hero и нам нем я уже смотрел Dashboard |
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.
PgHero ещё можно поставить как Linux-пакет, у нас админ так и сделал.
https://github.com/ankane/pghero/blob/master/guides/Linux.md
|
||
В итоге, вызов bin/rake ab_test:users:list — вызывает ab с необходимыми параметрами по нужному нам роуту | ||
|
||
Прогнав AB тесты по некоторым экшенам, и посмотрев в skylight — показало следующие результаты |
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.
Лучше бы не называть такие тесты AB-тестами.
Потому что возникает путаница между ab, который apache benchmark и AB-тестами, которые https://ru.wikipedia.org/wiki/A/B-%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5
|
||
|
||
Проанализировав этот контроллер, были обнаружены проблемы. | ||
Например, бессмысленное использование dup у hash. Пример |
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.
хотели подстраховаться наверное от того, чтобы попортить передаваемые данные
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.
но ведь merge и так возвращает новый объект, а не изменяет текущий =)
тут больше похоже на то, что тот, кто писал это, не знал об этом)
Общее время выходило чуть больше 12 минут. | ||
|
||
И после одного урока по оптимизации, где использовали потоковое чтение/запись с PG — я решил использовать этот способ | ||
Переписал слегка запросы. Теперь мы потоково читаем и потоково пишем в другую БД |
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.
Круто! 💪
## Итого | ||
Удалось улучшить результат, но в данном приложение достаточно сложно самому делать нужные запросы, ходить по роутам, соблюдать необходимые условия и, при необходимости, что-то комментировать/дописывать в коде, дабы отработать нужный сценарий | ||
|
||
Тут, правильнее всего, поставить New Relic и PG Hero на продакшн. Чтобы собрались данные и отталкиваясь от полученных результатов, оптимизировать приложение |
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.
Да, круто, что вы собрали инфу своими руками и даже сделали довольно удобные инструменты для этого, но с системой мониторинга всё равно удобнее )
### Шаг №1 | ||
Запуск Coverage в Chrome на главной странице показало следующее | ||
|
||
![op_first](https://i.ibb.co/6YYSGpt/t-front-0.jpg) |
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.
98% unused, классика )
### Итого | ||
Проблемы с изображениями, их очень много. Также, тут есть большой запас по избавлению от ненужного js и css | ||
|
||
Обязательно подниму вопрос о переходе на http2, использование форматов изображений webp, для тех браузеров, что поддерживают. А также продолжу избавляться от неиспользуемого кода js и css |
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 по трем проектам
К сожалению, вышли они не очень большими, можно было бы больше информации внести, будь немного больше времени
case-study 1
case-study 2
case-study 3