/ / Rails s'initialise extrêmement lentement sur ruby ​​1.9.1 - ruby-on-rails, ruby, performance, démarrage, ruby-1.9.1

Rails s'initialise extrêmement lentement sur Ruby 1.9.1 - ruby-on-rails, ruby, performance, démarrage, ruby-1.9.1

Je viens de recevoir mon application rails 2.3.8 sur Ruby 1.9.1. Pour accéder à la console, démarrez le serveur Web. Tout ce qui initialise les rails prend 3 à 4 fois plus longtemps dans ruby ​​1.9 que dans ruby ​​1.8.7. J'utilise des gestionnaires de versions ruby ​​pour pouvoir basculer facilement entre ruby ​​1.9 et 1.8.7. La différence de vitesse se produit aussi bien en production qu'en développement. si mal que l'application expire sur Heroku à la première demande.

Des idées pour lesquelles ruby ​​1.9 serait 3 à 4 fois plus lent? Je ne peux pas le comprendre pour la vie de moi.

Réponses:

6 pour la réponse № 1

Essayez d'utiliser 1.9.2-head au lieu de 1.9.1. C'est le Version recommandée pour Rails 3, alors vous aurez peut-être plus de chance. Rails 2.3.8 démarre très rapidement sur la tête 1.9.2 à partir des tests que je viens de faire localement (avec Authlogic installé aussi, d'ailleurs).

Si vous utilisez RVM, tapez ce qui suit:

rvm install 1.9.2-head
rvm use 1.9.2-head

Edit: J'ai essayé 1.9.1 p378 avec la même application et le temps de démarrage a pris environ 13 secondes, contre 5 secondes sur la tête 1.9.2. 1.9.2-rc1 est attendu ce mois-ci Je crois, alors c’est une bonne nouvelle :)


0 pour la réponse № 2

C'est probablement parce que ruby ​​1.9 utilise gem_prelude (ce qui vous donne un grand chemin de chargement) au lieu de rubygems normal. Commander la longueur de $: - qui fait l'objet d'une recherche une fois pour chaque besoin, causant un temps supplémentaire

Si vous le souhaitez à l'ancienne, mettez à niveau ruby ​​--disable-gems

Si vous êtes sur Windows, jetez un coup d'œil à mon joyau plus rapide.

http://github.com/rdp/faster_require

Bien que je suppose, maintenant que vous en parlez, cela pourrait aider avec 1.9 Linux. Peut être.

GL! -rp