получать странные отчеты о времени загрузки при попытке ускорить приложение rails - PullRequest
1 голос
/ 26 мая 2010

Я использую newrelic (режим разработчика) для мониторинга моего приложения rails. странно, что загрузка одной и той же страницы дает разные результаты загрузки, при этом одна случайная часть постоянно перевешивает остальные.

в качестве примера (все результаты с той же страницы, "messages / 1", просто выполняется обновление)

                                             Exclusive         Total
Administration#find_by_sql                269 ms  35%   276 ms    36%
messages/show.html.erb Template           113 ms    15%     183 ms    24%
MessagesController#show                   90 ms     12%     760 ms    99%
events/_events_box.html.erb Template         24 ms  3%   24 ms     3%
SQL/show                                     19 ms  2%   19 ms    2%
User#find                                    19 ms  2%   19 ms    2%
Remainder                                    234 ms 31%  234 ms    31%

-------
subscriptions/_subscribe.html.erb Template   266 ms    44%   272 ms   45%
MessagesController#show                      61 ms  10%      606 ms   99%
messages/show.html.erb Template              61 ms  10%   365 ms   60%
SQL/other                                 24 ms     4%     24 ms  4%
layouts/_header.html.erb Template         20 ms     3%     28 ms  5%
events/_events_box.html.erb Template      19 ms     3%     19 ms  3%
Remainder                                 160 ms    26%     160 ms  26%

-------
drafts/_js_and_sbox.html.erb Template      265 ms   44%       269 ms  45%
MessagesController#show                    72 ms    12%       595 ms  100%
messages/show.html.erb Template               57 ms    9%  356 ms  59%
events/_events_box.html.erb Template          19 ms    3%     19 ms   3%
layouts/_header.html.erb Template             18 ms    3%        28 ms   5%
SQL/other                                  15 ms    2%     15 ms   2%
Remainder                                  153 ms   26%     153 ms  26%

Кто-нибудь знает причину, по которой случайная часть кода (которая обычно незначительна и быстро загружается) всегда может занимать почти половину времени загрузки? Может быть, это потому, что я выполняю запросы в некоторых шаблонах?

Ответы [ 2 ]

2 голосов
/ 23 августа 2010

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

ruby-prof приписывает полную стоимость сборка мусора в методе, где GC срабатывает, а не методы которые выделяют память. Это как обвиняя последнюю соломинку за нарушение спина верблюда.

1 голос
/ 06 сентября 2010

Другой вариант заключается в том, что ваша БД может быть несколько перегружена, что приводит к медленным запросам / ожиданию БД. NewRelic иногда не очень конкретен.

Если вы действительно хотите настроить свои действия, я бы принял заявления NewRelic в качестве руководства для того, где вы хотите протестировать с помощью лучшего инструмента (например, ruby-prof).

Я говорил об использовании этих инструментов: http://skillsmatter.com/podcast/ajax-ria/making-your-rails-app-kick-ass-with-ruby-prof-and-kcachegrind

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