2008-12-08 8 views
45

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.¿Qué herramientas recomiendas para perfilar las aplicaciones de Rails?

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?

Respuesta

20

New Relic ofrece perfiles de rieles incluyendo una versión free 'Lite'.

+7

Además, vale la pena mencionar que se puede utilizar el modo "desarrollador", lo que le permite utilizar de forma local sin una cuenta NewRelic. – Ivan

4

http://rails-analyzer.rubyforge.org/ podría ser lo que estás buscando.

recomiendo altamente el analizador de registros de producción para obtener una lista clara de la mayoría de las acciones que consumen tiempo y también el generador de perfiles de acción.

agregado: para el analizador de registro de producción no necesita ninguna configuración, simplemente 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.

0

También debe 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 característica interesante de todo es que se puede publicar datos de la carrera para que otros comentan y ayudan a diagnosticar sus largas consultas o mal código.

+0

Tune up link parece no ser válida hoy, Aug 9 2010 :( –

+1

-1 Estoy seguro de que esto era una gran herramienta en un punto, pero FiveRuns ha disuelto y el enlace ya no funciona. –

2

Si está bajo OSX Leopard, puede darle una oportunidad a DTrace.

44

Puede utilizar el built in profiler así:

$ 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 los carriles 3, puede utilizar rails profiler.

+2

¿Hay una manera de llamar a una ¿acción del controlador o ejecutando una ruta a través del generador de perfiles? Intenté 'get '/'' y otras variaciones pero no pude hacer que funcionara –

+2

@ErikJ Hoy tuve la misma necesidad, aquí hay algo que terminé usando. https: // gist .github.com/1389759 Puede usarlo para verificar y crear un perfil de su aplicación enviándole solicitudes mientras está en una consola o desde un depurador. Espero que ayude. –

Cuestiones relacionadas