/ / Rails se inicializa extremadamente lento en ruby ​​1.9.1 - ruby-on-rails, ruby, performance, startup, ruby-1.9.1

Rails se inicializa extremadamente lento en ruby ​​1.9.1 - ruby-on-rails, ruby, performance, startup, ruby-1.9.1

Acabo de recibir mi aplicación de Rails 2.3.8 corriendo en Ruby 1.9.1. Para entrar en la consola, inicie el servidor web, cualquier cosa que inicialice los rieles, tarda 3 - 4 veces más en ruby ​​1.9 que en ruby ​​1.8.7. Estoy usando los gestores de versiones de ruby, por lo que puedo cambiar fácilmente entre ruby ​​1.9 y ruby ​​1.8.7. La diferencia de velocidad ocurre tanto en la producción como en el desarrollo. Quiero usar 1.9 porque es más rápido una vez que todo está funcionando, pero el tiempo de inicio es tan malo que la aplicación está agotando el tiempo en Heroku en la primera solicitud.

¿Alguna idea de por qué ruby ​​1.9 sería 3 - 4 veces más lento? No puedo entenderlo por la vida de mí.

Respuestas

6 para la respuesta № 1

Trate de usar 1.9.2-head en lugar de 1.9.1. Es el Versión recomendada para Rails 3, para que tengas mejor suerte. Rails 2.3.8 se inicia muy rápido en la versión 1.9.2 de las pruebas que acabo de ejecutar localmente (con Authlogic también instalado, por cierto).

Si estás usando RVM, escriba lo siguiente:

rvm install 1.9.2-head
rvm use 1.9.2-head

Edición: Intenté 1.9.1 p378 con la misma aplicación y el tiempo de inicio tomó aproximadamente 13 segundos en comparación con 5 segundos en 1.9.2 cabezas. 1.9.2-rc1 saldrá este mes Creo, así que son buenas noticias :)


0 para la respuesta № 2

Es probable que sea porque el rubí 1.9 usa gem_prelude (que te da una ruta de carga grande) en lugar de rubíemas normales. Compruebe la longitud de $: - que se busca una vez por cada requerimiento, lo que causa tiempo extra

Si lo desea a la manera antigua, (actualice a la última versión de rubygems y) ejecute ruby ​​--disable-gems

Si estás en Windows, echa un vistazo a mi gema de quick_require.

http://github.com/rdp/faster_require

Aunque supongo, ahora que lo mencionas, podría ayudar en 1.9 Linux. Tal vez.

GL! -rp