2010-02-21 5 views
4

J'ai une application rubyonrails qui est devenue très lente en mode de développement. Tout va bien en production, mais même un simple "hello world" prend secondes en dev. J'ai vérifié le magasin de session et toutes les raisons possibles que j'ai trouvées sur le net, mais je n'ai pas trouvé le problème. Ai-je manqué quelque chose qui est de notoriété publique? "Complété en 1657ms (Vue: 226, DB: 39)"ROR très lent dans le développement tandis que la production fonctionne bien

Répondre

6

Le développement est définitivement plus lent, car il recharge tous les composants. Le mode de production ne charge les composants que lorsque le serveur est démarré. Si vous trouvez que votre application est encore trop lente en mode Production, vous pouvez commencer à rechercher les goulots d'étranglement. Vous pouvez commencer par optimiser les requêtes DB, avec: include et indicies. Vous pouvez également essayer de supprimer vos gemmes et plugins systématiquement pour trouver les pièces qui ralentissent votre code.

0

Créez une nouvelle application, voir si elle est trop lente - cela pointera vers votre pile de serveur (apache, mongrel, passager, etc.) plutôt que votre application. Si c'est juste votre application, google rails profilage - et choisissez l'une des nombreuses options pour profiler une application.

1

C'est généralement le cas si vous utilisez webrick, c'est si lent qu'il fait saigner les yeux.

Essayez d'installer bâtarde dans dev

gem install mongrel

0

WEBrick fait une recherche DNS inversée sur la connexion IP par défaut. En d'autres termes, il essaie de voir si votre adresse IP est associée à un nom de domaine. Ceci est inutile et prend trop de temps, vous pouvez donc le désactiver.

Ouvrez le fichier "l/ruby ​​/ lib/ruby ​​/ 1.9.1/webrick/config.rb" et recherchez la ligne avec ": DoNotReverseLookup => néant".

Remplacez zéro par true.

Profitez-en!

Questions connexes