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

Я давно искал инструменты профилирования для Rails. В настоящее время я играю и тестирую ruby-prof и railsbench, но я разочарован количеством настроек и искажений, необходимых для работы.

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

7 ответов

Решение

New Relic предлагает профилирование 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. Имейте в виду, что он отправляет данные обратно на свой сервер (в основном, очень безвредная информация), но это может беспокоить некоторых людей (а именно правительственные учреждения будут очень недовольны этим). Я думаю, вы будете удивлены, насколько замечательным является инструмент, который считается бесплатным.

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

Другие вопросы по тегам