Что означает Rails, когда он сообщает о том, что тратит время на рендеринг представления? - PullRequest
3 голосов
/ 16 января 2010

Вот выдержка из моего журнала Rails:

Rendered songs/_song_list (683.4ms)
Completed in 841ms (<b>View: 633</b>, DB: 159) | 200 OK

Что означает Rails, когда он сообщает, что тратит 633 мс на рендеринг представления?

В этом конкретном случае я перебираю коллекцию элементов и печатаю <li> для каждого (как следует из названия части) - тратит ли Rails на конкатенацию строк 633 мс? Я чувствую, что это (или любая другая операция, связанная с процессором) должна быть примерно бесконечно быстрой.

Ответы [ 2 ]

1 голос
/ 16 января 2010

Убедитесь, что вы не получаете данные из базы данных по каждому элементу. Предварительно загрузите все, что вам нужно, с опцией include при поиске, иначе во время работы View вы будете запускать тонны запросов и инициализировать новые объекты ActiveRecord, что приводит к огромным потерям времени.

0 голосов
/ 16 января 2010

View в данном случае означает все : начальная загрузка, включает в себя, инициализации, все. Это все еще кажется большим, хотя. Как выглядит время в представлении, которое ничего не делает?

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