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 № 1Trate 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