2010-04-26 12 views

Respuesta

8

ruby-prof es el camino a seguir. Aquí hay un howto, How to profile your Rails and Ruby applications with ruby-prof.

Si lo usa en combinación con una herramienta de visualización como kcachegrind, puede separar fácilmente el código que es su código de aplicación del código de la estructura.

Di una charla sobre estas herramientas en mi grupo local de usuarios de Ruby hace un tiempo: Making your rails app kick ass with ruby-prof and kcachegrind.

+0

Intenté seguir las instrucciones en el enlace que se proporciona aquí, pero descubrí que 'script/performance/request' se eliminó a partir de Rails 2.3.2. –

+0

Sí, esta respuesta es específica de Rails-2 como la presenté en 2010. No estoy seguro de la forma de hacer esto de Rails 3 ... –

+1

Changelog (http://rails.rubyonrails.org/files/railties/CHANGELOG.html) dice: Eliminar secuencia de comandos/rendimiento/solicitud a favor de las pruebas de integración de rendimiento. [Pratik Naik] "Para continuar utilizando la escritura/rendimiento/solicitud, instalar el plugin request_profiler: script/plugin de instalar git: //github.com/rails/request_profiler.git" –

2

La consola de Ruby on Rails debe mostrarle qué parciales están tardando un tiempo en renderizarse. Si eso no es suficiente, puedes instalar la nueva gema reliquia (https://github.com/newrelic/rpm) y usarla en modo desarrollador, que te dará una idea general de lo que está sucediendo.

Si está implementando en Heroku puede agregar la versión gratuita de rpm que le dará las mismas estadísticas en su aplicación en ejecución.

Ruby tiene un generador de perfiles (http://ruby-prof.rubyforge.org/) que le mostrará el uso de la memoria, los tiempos de llamada, etc., pero podría ser difícil difundir su código desde el código de la estructura.

+0

New Relic puede contarle un poco más, pero no tiene un perfil de código línea por línea que es necesario para un análisis de rendimiento completo. –

+0

y no funciona bajo windof – halfbit

0

que he tenido algo de éxito con https://github.com/bhb/rack-perftools_profiler

Se dejará que lo perfila una o varias solicitudes para cualquiera de cputime, los métodos, las asignaciones de objetos o walltime, e integrar muy bien a través de middleware Rack.