Как я могу профилировать запрос в Ruby on Rails? - PullRequest
11 голосов
/ 26 апреля 2010

Как я могу профилировать действие контроллера?

Одно из моих представлений занимает довольно много времени для рендеринга, и я бы хотел его разбить. Я вижу script/performance/profiler, но, похоже, у него есть доступ только к глобальной области видимости.

Ответы [ 3 ]

8 голосов
/ 05 ноября 2010

ruby-prof - это путь. Вот инструкция: Как профилировать приложения Rails и Ruby с помощью ruby-prof .

Если вы используете его в сочетании с инструментом визуализации, таким как kcachegrind , вы можете легко отделить код, который является кодом вашего приложения, от кода платформы.

Некоторое время назад я выступал с докладом об этих инструментах в своей локальной группе пользователей Ruby: Заставляем ваше приложение rails работать с ruby-prof и kcachegrind .

2 голосов
/ 04 ноября 2010

Консоль Ruby on Rails должна показывать, какие части требуют времени для рендеринга. Если этого недостаточно, вы можете установить новый реликтовый камень (https://github.com/newrelic/rpm)) и использовать его в режиме разработчика, который даст вам общее представление о том, что происходит.

Если вы развертываете на Heroku , вы можете добавить бесплатную версию rpm, которая даст вам такую ​​же статистику по вашему запущенному приложению.

В Ruby есть профилировщик (http://ruby -prof.rubyforge.org /), который покажет вам использование памяти, время звонка и т. Д., Но может быть трудно распространить ваш код из кода платформы.

0 голосов
/ 06 августа 2013

У меня был некоторый успех с https://github.com/bhb/rack-perftools_profiler

Это позволит вам профилировать один или несколько запросов для любого из cputime, методов, выделения объектов или настенного времени и красиво интегрироваться через промежуточное ПО Rack.

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