Je déploie les applications Django à l'aide d'un script fabric qui extrait une copie de mon projet et lorsque tout est en place, la source est symlinked et le serveur web est rechargé (supposant que c'est une approche typique). Je m'inquiète que la première fois que le site est touché après le déploiement, tous les scripts python doivent être réinterprétés. J'ai quelques idées brillantes sur la façon dont je pourrais forcer le code à être traité avant que les clients le touchent, mais je cherche des stratégies de haut niveau que les gens pourraient utiliser pour accomplir cela.Pré-interpréter le site Django au moment du déploiement
Toutes les suggestions sont les bienvenues. Merci d'avance pour tout conseil que vous pouvez offrir.
-Mike
Ce temps de chargement initial vous dérange-t-il? Ou pré-optimisez-vous quelque chose qui - en réalité - n'a pas d'effet mesurable sur votre site? Quels problèmes de performance avez-vous ** réellement ** et êtes-vous sûr qu'ils ne sont pas liés à Internet, à une base de données ou à un système de fichiers? –
@ S.Lott J'ai remarqué dans mon environnement de développement (qui recharge le code chaque fois qu'il est changé) que la première fois que je tape sur le nouveau code, la requête prend beaucoup plus de temps. Je suppose que les utilisateurs finaux pourraient avoir le même problème sur le serveur live lorsque le nouveau code est déployé. Suis-je perdre mon temps à essayer de pré-compiler pour cette raison ou devrais-je m'inquiéter? Merci. –
"Je suppose que les utilisateurs finaux pourraient avoir le même problème". Pourquoi supposer cela? Mesure. Ce n'est clairement pas vrai, BTW. Mais vous devriez mesurer au lieu de simplement supposer. "Suis-je perdre mon temps à essayer de pré-compiler". Complètement. En outre, vous avez un biais de mesure terrible. Une charge (** un, 1 **) sur le nombre innombrable de demandes traitées avant la prochaine mise à jour logicielle est * insignifiante *. Ne vous attardez pas sur les choses qui arrivent ** une fois **. Rester sur les choses qui se produisent chaque demande unique. Performances de base de données, par exemple. –