У меня есть контроллер, который возвращает JSON или XML из довольно сложного реляционного запроса с некоторой логикой контроллера.
Я настроился на стороне БД, уточнив мой запрос и убедившись, что мои индексы верны для моего запроса.
В своем журнале я вижу такие вещи:
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, поиск активной записи занимает почти все оставшееся время. Так что теперь я запутался в том, что означает этот номер БД и почему в строке теста будет указано ~ 600 мс, а БД: время будет ~ 50.
Спасибо