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