Conversation
cyprus11
commented
Apr 3, 2023
- Разобрался с профилированием запросов в БД;
- узнал о новых гемах(activerecord_import, strong_migrations)
- сделал ДЗ
| <% end %> | ||
| <% end %> | ||
| </ul> | ||
| ==================================================== |
There was a problem hiding this comment.
Можно использовать рендеринг коллекций, чтобы сохранить удобство паршлов и не так сильно проиграть в производительности.
Там можно даже задать шаблон разделителя: https://guides.rubyonrails.org/layouts_and_rendering.html#spacer-templates
| ## Проблема 1 | ||
| - Большое количество рендера паршелов, общее время отрисовки - 13688 мс. Решение - перенести всё в один template | ||
|
|
||
| Так же добавил составной индекс, правда по времени загрузка особо быстрее не стала. |
There was a problem hiding this comment.
Потому что время уходит не рендеринг в основном. Но индекс всё равно полезно, особенно если заходить со стороны оптимизации нагрузки на БД.
| - Большое количество рендера паршелов, общее время отрисовки - 13688 мс. Решение - перенести всё в один template | ||
|
|
||
| Так же добавил составной индекс, правда по времени загрузка особо быстрее не стала. | ||
| После кэширования всей страницы, время отрисовки страницы стало 23 мс. |
There was a problem hiding this comment.
Закэшировать конечно можно, но надо тогда предусмотреть сброс кэша в случае изменений в расписании или в данных автобусов и тд
| t.integer "duration_minutes" | ||
| t.integer "price_cents" | ||
| t.integer "bus_id" | ||
| t.index ["from_id", "to_id"], name: "index_trips_on_from_id_and_to_id" |
| # rake reload_json[fixtures/small.json] | ||
| task :reload_json, [:file_name] => :environment do |_task, args| | ||
| json = JSON.parse(File.read(args.file_name)) | ||
| json = FastJsonparser.parse(File.read(args.file_name), symbolize_keys: false) |
There was a problem hiding this comment.
Спасибо, я кстати раньше не сталкивался с этим гемом
| Service.delete_all | ||
| Trip.delete_all | ||
| ActiveRecord::Base.connection.execute('delete from buses_services;') | ||
| [ |
There was a problem hiding this comment.
Код из rake-таски лучше в сервис выносить, удобнее работать с просто ruby-классом, чем с рейк-таской