ruby-on-rails ruby performance startup ruby-1.9.1

ruby on rails - Rieles inicializa extremadamente lento en ruby 1.9.1



ruby-on-rails performance (2)

Acabo de tener mi aplicación Rails 2.3.8 funcionando en ruby ​​1.9.1. Para entrar en la consola, inicie el servidor web, cualquier cosa que inicialice los rieles toma 3 a 4 veces más en Ruby 1.9 que en Ruby 1.8.7. Estoy usando los gestores de versiones de ruby ​​para poder 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 se está agotando 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 mi vida.


Probablemente se deba a que ruby ​​1.9 usa gem_prelude (lo que te da una ruta de carga grande) en lugar de los rubygems 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


Trate de usar 1.9.2-head en lugar de 1.9.1. Es la versión recomendada para Rails 3, por lo que puede tener 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á utilizando RVM , escriba lo siguiente:

rvm install 1.9.2-head rvm use 1.9.2-head

Edición: probé 1.9.1 p378 con la misma aplicación y el tiempo de inicio demoró unos 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 :)