Conversation
spajic
left a comment
There was a problem hiding this comment.
Nice work, респект за потоковую обработку и понимание что индексы тут не помогут, а в чём-то могут и помешать
| # frozen_string_literal: true | ||
|
|
||
| require 'oj' | ||
| class ReloadJson |
| </ul> | ||
| <%= render "delimiter" %> | ||
| <% end %> | ||
| <%= render partial: 'trip', collection: @trips, as: :trip %> |
There was a problem hiding this comment.
Есть ещё забавная возможность задать разделитель параметром: https://guides.rubyonrails.org/layouts_and_rendering.html#spacer-templates
| После оптимизации обработак medium файла - ~ 1 сек, память - 87 MB | ||
|
|
||
| Обработка large.json - ~ 7.6 сек, память - 87MB | ||
|
|
| # Б. Отображение расписаний | ||
| Начну с rack-mini-profiler | ||
|
|
||
| Без профилировщика страница с 1004 трипов загружается за 3.4 секунды, с профилировщиком - 19 сек |
There was a problem hiding this comment.
надо всегда разделять профилирование отдельно - замеры отдельно
|  | ||
| Общее время запроса в среднем 315ms | ||
|
|
||
| Считаю на этом можно остановиться, т.к. улучшение запросов почти не принесет пользы, а импорты могут замедлиться из-за добавления индексов |
There was a problem hiding this comment.
В принципе да
Тут забавно, что pg_hero может подсказать какие индексы надо добавить.
С точки зрения рендеринга страницы это ничего не даст. Но если бы мы смотрели с точки зрения нагрузки на БД, это была бы оптимизация №1
There was a problem hiding this comment.
Я все равно в pg_hero заглянул и проверил будет ли ругаться - вся панель была зеленая, 0 problems, видимо, suggest'ы по индексам при привышении какого-то лимита по времени только появляются
No description provided.