Ответ 1
Новая реликвия предлагает профилирование Rails, включая бесплатный 'Lite'.
Я искал инструменты для профилирования Rails некоторое время. В настоящее время я играю и тестирую ruby-prof и railsbench, но я немного разочарован тем, что нужно настроить и настроить, чтобы потом работать.
Хотя я не против (тонкости) настройки, я хотел бы знать, есть ли другие, более простые и простые в использовании инструменты для профилирования приложения Rails? Какие инструменты вы рекомендуете?
Новая реликвия предлагает профилирование Rails, включая бесплатный 'Lite'.
Вы также можете использовать встроенный профайлер:
$ ruby script/performance/profiler 'User.new' 5
% cumulative self self total
time seconds seconds calls ms/call ms/call name
189.25 1.76 1.76 1 1760.00 1760.00 Profiler__.start_profile
43.01 2.16 0.40 115 3.48 3.91 ActiveRecord::ConnectionAdapters::Column#simplified_type
8.60 2.24 0.08 15 5.33 8.67 Array#each
7.53 2.31 0.07 115 0.61 5.39 ActiveRecord::ConnectionAdapters::Column#initialize
6.45 2.37 0.06 115 0.52 0.52 ActiveRecord::ConnectionAdapters::Column#type_cast
5.38 2.42 0.05 690 0.07 0.07 Regexp#===
0.00 2.69 0.00 10 0.00 0.00 Process.times
0.00 2.69 0.00 10 0.00 0.00 Benchmark.times
Обратите внимание, что для Rails 3 вы можете использовать rails profiler
.
Ошибка стойки довольно классная http://github.com/brynary/rack-bug
http://rails-analyzer.rubyforge.org/ может быть тем, что вы ищете.
Я настоятельно рекомендую анализатор производственного журнала для получения четкого списка самых трудоемких действий, а также профайлера действий.
добавлено: для анализатора производственного журнала вам не нужна какая-либо конфигурация, он просто анализирует журнал производства и дает вам список самых трудоемких действий, включая мин/макс/медианное время. Очень приятно видеть, где вы должны профилировать/оптимизировать больше.
Еще один, заслуживающий проверки, - это Mini Profiler: https://github.com/SamSaffron/MiniProfiler/tree/master/Ruby
Он используется в StackExchange (хотя эта версия переносится на Ruby).
Вот Railscast: http://railscasts.com/episodes/368-miniprofiler?view=asciicast
Если вы находитесь под OSX Leopard, вы можете попробовать попробовать DTrace.
Вы также должны взглянуть на FiveRuns TuneUp. Он полностью бесплатный, устанавливается как плагин в ваше приложение Rails. Имейте в виду, что он отправляет данные обратно на свой сервер (в основном очень безобидная информация), но это может беспокоить некоторых людей (а именно, правительственные агентства будут очень недовольны этим). Я думаю, вы будете удивлены тому, насколько хорошо инструмент рассматривает это бесплатно.
Еще одна приятная особенность в том, что вы можете публиковать данные своего запуска, чтобы другие могли комментировать и помогать вам диагностировать ваши длинные запросы или плохой код.