У меня есть контроллер, который возвращает JSON или XML из довольно сложного реляционного запроса с некоторыми элементами управления. r логика тоже.
Я настроил базу данных, уточнив свой запрос и убедившись, что мои индексы соответствуют моему запросу.
В моем журнале я вижу такие элементы:
Completed in 740ms (View: 1, DB: 50)
Итак, если я правильно понимаю, это означает, что визуализация представления заняла 1 секунду, а запрос к БД составил 50 мс. Все оставшееся время в контроллере? Я пробовал обойти логику контроллера и просто оставить там to_json и to_xml, и это так же медленно. В качестве ориентира мой средний возвращаемый набор результатов JSON составляет 168 КБ.
Есть ли другие шаги, которые входят в Завершенное вовремя? Включает ли он время до последнего байта для передачи по сети?
Обновление: Я заключил различные части моего контроллера в блоки тестирования:
self.class.benchmark("Active Record Find") do
#my query here
end
Я обнаружил, что, хотя в строке журнала указано DB: 50 my active поиск записи занимает почти все оставшееся время. Итак, теперь я не понимаю, что означает этот номер БД и почему в тестовой строке будет указано ~ 600 мс, а в БД: время будет ~ 50.
Спасибо