ruby on rails - ¿Qué herramientas recomiendas para perfilar las aplicaciones de Rails?
ruby-on-rails profiling (7)
He estado buscando herramientas de creación de perfiles para Rails por un tiempo. Actualmente estoy jugando y probando ruby-prof y railsbench, pero estoy un poco frustrado con la cantidad de ajustes y cambios necesarios para que luego funcione.
Aunque no me importa (demasiado) el ajuste, me gustaría saber si hay otras herramientas más sencillas y fáciles de usar para perfilar una aplicación de Rails. ¿Qué herramientas recomiendas?
Otro que vale la pena echarle un vistazo es Mini Profiler: https://github.com/SamSaffron/MiniProfiler/tree/master/Ruby
Se usa en StackExchange (aunque esta versión está portada a Ruby).
Aquí hay un Railscast: http://railscasts.com/episodes/368-miniprofiler?view=asciicast
Si está bajo OSX Leopard, puede darle una oportunidad a DTrace.
También debería echar un vistazo a FiveRuns '' TuneUp . Es completamente gratis, se instala como un complemento en su aplicación Rails. Tenga en cuenta que envía datos a su servidor (en su mayoría información muy inofensiva), pero eso puede molestar a algunas personas (es decir, las agencias gubernamentales estarían muy descontentas con eso). Creo que te sorprenderá lo genial que es la herramienta, ya que es gratuita.
Otra buena característica de esto es que puedes publicar tus datos de ejecución para que otros puedan comentar y ayudarte a diagnosticar tus largas consultas o tu código incorrecto.
También puede usar el generador de perfiles integrado :
$ 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
Tenga en cuenta que para Rails 3, puede usar rails profiler
.
error de rack es muy bueno http://github.com/brynary/rack-bug
http://rails-analyzer.rubyforge.org/ podría ser lo que estás buscando.
Recomiendo encarecidamente el Analizador de registro de producción para obtener una lista clara de las acciones que consumen más tiempo y también el perfil de acción.
agregado: para el analizador de registro de producción no necesita ninguna configuración, solo analiza el registro de producción y le proporciona una lista de las acciones que más tiempo consumen, incluido el tiempo mínimo / máximo / mediano. Muy bueno para ver dónde debe perfilar / optimizar más.
New Relic ofrece perfiles de Rails que incluyen una versión gratuita de ''Lite'' .