Skip to content

Latest commit

 

History

History
20 lines (15 loc) · 1.66 KB

File metadata and controls

20 lines (15 loc) · 1.66 KB

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

Подготовка

Чтобы выявить возможные проблемы в dev.to, развернул его локально, установил newrelic_rpm и подал на него небольшую нагрузку при помощи утилиты ab. Дополнительно настроил rack-mini-profiler.

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

rack-mini-profiler показывает время загрузки главной страницы примерно 2-3 секунды.

Поиск проблемы

NewRelic показал проблему на главной странице alt text Очень много времени загружаются шаблоны _single_story.html.erb

Решение

Данные шаблоны содержат минимальную информацию, которая редко меняется, за исключением количества лайков и комментариев. Было решено закэшировать каждый шаблон по отдельности, чтобы при обновлении story сбрасывался кэш для соответствующего шаблона. Внутри шаблона positive_reactions_count и comments_count это поля статьи, при обновлении меняется updated_at и сбрасываетс кэш.

Результаты

Время загрузки главной страницы стало менее 0,5 секунд. alt text alt text