Как я могу профилировать загрузку приложения Rails? - PullRequest
8 голосов
/ 23 декабря 2011

Простая проблема, у меня есть старое приложение на Rails 2.3, и на это требуется довольно много времени.rake занимает более 25 секунд, но не похоже, что на самом деле ничего не происходит.

Есть ли какой-нибудь простой способ, которым я могу просто получить какой-то дамп профилировщика со времени загрузки приложениявидите, какие методы занимают больше всего времени?

Решение для Rails 2.3 и 3.1 было бы еще более полезным.

Ответы [ 2 ]

10 голосов
/ 23 декабря 2011

Профилируйте грабли, для которых требуется среда rails, примерно так:

 desc "Load it"
 task :loadit => :environment do

 end

затем профиль с ruby-prof

ruby -Ilib -S ruby-prof -p graph_html `which rake` loadit > profile.html

Он должен работать с рельсами 2.3, тестировал его только на 3.x, но я не вижу причин, почему он не должен работать.

1 голос
/ 23 декабря 2011

Вы можете запустить приложение с подключенным профилировщиком, например, ruby-prof или perftools.rb .Пока он еще запускается, запустите к нему HTTP-запрос, который попытается пройти по маршруту GET a /kill_me, как только приложение запустится./kill_me может привести к изящной смерти вашего приложения, вызвав exit.В результате вы получили профиль своего стартапа.

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