Понимание времени рендеринга Ruby on Rails - PullRequest
9 голосов
/ 27 марта 2009

Я работаю над «оптимизацией» своего приложения и пытаюсь понять вывод, который rails (версия 2.2.2) выдает в конце рендеринга.

Вот "старый" способ:

Rendered user/_old_log (25.7ms)
Completed in 466ms (View: 195, DB: 8) | 200 OK

И «новый» путь:

Rendered user/_new_log (48.6ms)
Completed in 337ms (View: 192, DB: 33) | 200 OK

Эти запросы были в точности такими же, разница в том, что старый способ разбора файлов журнала, а новый способ запроса таблицы журнала базы данных.

Реальная скорость страницы не имеет значения (пользователь понимает, что это медленный запрос) ... но я бы хотел, чтобы страница отвечала как можно быстрее, даже если это "медленная" страница.

Итак, мой вопрос: что означают / означают числа? Другими словами, какой способ был более быстрым и почему?

Ответы [ 3 ]

14 голосов
/ 27 марта 2009

Это:

Rendered user/_old_log (25.7ms)

- это время для визуализации только частичного шаблона _old_log, полученное из ActiveSupport :: Notification , обрабатываемого ActionView :: LogSubscriber

Это:

Completed 200 OK in 466ms

Возвращается ли статус http, а также общее время для всего запроса. Это происходит от ActionController :: LogSubscriber .

Кроме того, обратите внимание на скобки в конце:

(Views: 124.6ms | ActiveRecord: 10.8ms)

Это общее время рендеринга всего представления (частичное и все остальное) и всех запросов к базе данных соответственно, а также ActionController :: LogSubscriber .

3 голосов
/ 27 марта 2009

Иордания ответ правильный. Перефразируя, первое число - это время загрузки страницы. Во-вторых, сколько времени потребовалось для создания представления. Последнее число показывает, сколько времени потребовалось вашей базе данных для обработки всех запросов, которые вы ей отправили.

Вы также можете получить оценку того, сколько времени заняли ваш код контроллера и модели, вычтя последние два числа из первого числа, но лучше использовать метод Benchmark.measure (http://www.ruby doc.org/stdlib/libdoc/benchmark/rdoc/classes/Benchmark.html).

Ваш новый способ улучшился, потому что код в Controller / Model выполняется быстрее.

0 голосов
/ 27 марта 2009

Ваш новый способ тратит меньше времени в целом, но больше времени на рендеринг шаблона.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...