Tengo una aplicación de Rails 3.2.2 que estoy buscando ejecutar usando JRuby 1.6.7 (modo 1.9.2).JRuby Performance
Tengo una aplicación de ejemplo que se ejecuta en la RM rubí 1.9.3 y una petición típica está volviendo en ~ 40 ms: Completado 200 OK en 36ms (Visitas: 27.5ms | ActiveRecord: 8.2ms)
Bajo JRuby usando la misma solicitud es entre 3 y 20 veces más lenta dependiendo de la página. Para la misma operación anterior, toma ~ 180ms: Completó 200 OK en 180ms (Vistas: 153.0ms | ActiveRecord: 24.0ms)
¿Es esta una diferencia de rendimiento normal? He leído que JRuby es más o menos igual en velocidad con MRI. Los resultados son válidos para mi Mac y un servidor de Windows (donde desafortunadamente tendrá que ejecutarse). Empacarlo con Warbler bajo Tomcat es igual de lento.
Los tiempos anteriores corresponden a una aplicación básica de rieles creada para probar JRuby. En la aplicación más compleja, los tiempos están aún más separados. En esa aplicación, se está ejecutando más código ruby en algunas páginas. Parece que cuanto más depende la página de Ruby, mayor es la diferencia de rendimiento que estoy observando. No he afinado JRuby, ya que no sé exactamente por dónde empezar.
Así que mis preguntas son: ¿es esto normal? ¿Qué puedo hacer para sintonizar JRuby?
Al funcionar en el modo 'producción', en comparación con el modo de desarrollo, a veces ofrece una respuesta 5-6 veces más rápida. Al menos eso fue en mi caso. Gracias por notar eso. – Aleks