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