2011-01-27 33 views
5

Estoy buscando herramientas para monitorear/probar el rendimiento en rieles, y no estoy teniendo mucha suerte para encontrar algo particularmente efectivo. He leído la guía 'performance' de los rieles, pero utilizo RSpec en lugar de Rake: Test, por lo que no estoy particularmente interesado en utilizar el rake: test framework.Rails gems/tools for performance benchmarking?

Entonces, ¿qué utilizan las personas para las pruebas de rendimiento en rieles aparte del rastrillo: benchmarker de prueba? Cualquier sugerencia apreciada

Respuesta

10

La evaluación comparativa del rendimiento es una de esas cosas sobre las que obtendrá diferentes opiniones dependiendo de a quién le pregunte. Una cosa que escucho una y otra vez es que no deberías obsesionarte con el rendimiento desde el principio. No estoy seguro de dónde estás con tu aplicación, pero esto podría ser algo a considerar. Después de desarrollar una aplicación bastante grande, honestamente puedo decir que estoy de acuerdo con ellos. Es mejor usar buenas prácticas cuando se desarrolla y esperar para hacer ajustes de rendimiento más adelante. Las mejores prácticas incluyen cosas como indexar columnas de bases de datos.

Para la supervisión del rendimiento de aplicaciones de rieles activos, New Relic es una de las mejores herramientas disponibles *. El plan gratuito es un poco limitado ya que solo proporciona 30 minutos de datos históricos, pero la información que recopila no tiene precio. Algunos de los hosts en la nube, como Heroku y Engine Yard, están ofreciendo actualizaciones de planes de bronce gratuitas, que almacenan una semana de datos. Una vez que tenga información sobre su solicitud, puede tomar decisiones informadas sobre dónde enfocar su tiempo.

* Mi opinión

+0

* asiente * consejo sólido, aplausos. – PlankTon

1

Cuando su aplicación necesita un poco de pruebas de rendimiento, las pruebas de evaluación de rendimiento basados ​​TestUnit por defecto son un gran comienzo. Sin embargo, no debe detenerse allí, y debería considerar el uso de una variedad de herramientas basadas en la naturaleza de su aplicación.

Por ejemplo, analizar los registros de producción con una herramienta como request-log-analyzer es una forma excelente de identificar los cuellos de botella de rendimiento real. Bullet es otra gran herramienta que puede ejecutar en su entorno de desarrollo para identificar ineficiencias de rendimiento en sus llamadas a la base de datos. Para la evaluación comparativa de bajo nivel, los rieles también le dan el benchmark helper methods en modelos, controladores y vistas. Esto puede ser útil si se está enfocando en ajustar una parte específica de su aplicación.

También vale la pena señalar que rspec no es la mejor herramienta para el rendimiento de la evaluación comparativa (hasta la fecha). En mi opinión, tratar de afirmar cosas como it should_take_less_than 50 es extender la idea de las pruebas de rendimiento y tratar de forzarlo en el concepto de BDD. El rendimiento es menos frecuente sobre las expectativas absolutas y más sobre la identificación de las partes más lentas de su aplicación y hacerlas más rápidas.

Hay muchos recursos en línea sobre el tema. He encontrado estos Railscasts a ser un gran punto de partida: