Avec un langage de script tel que python (ou php), les choses ne sont pas compilées en bytecode comme dans .net ou java. Cela signifie-t-il qu'à chaque requête, il doit parcourir toute l'application et l'analyser/compiler? Ou au moins tout le code requis pour la pile d'appel donnée?Comment exactement une requête python (django) se produit-elle? est-ce qu'il doit refaire toute la base de code?
Répondre
Avec un langage de script comme Python (ou php), les choses ne sont pas compilées vers le bas à bytecode comme dans .net ou java.
Mauvais: tout ce que vous import
en Python se compile en bytecode (et enregistré comme .pyc
fichiers si vous pouvez écrire dans le répertoire contenant la source que vous importez - bibliothèques standard & c sont généralement pré-compilé, selon sur les choix d'installation bien sûr). Gardez juste le script principal court et simple (en important un module et en appelant une fonction) et vous utiliserez le bytecode compilé partout. (Le compilateur de Python est conçu pour être extrêmement rapide - avec des implications, notamment, qu'il ne fait pas beaucoup d'optimisations par ailleurs raisonnables - mais l'éviter complètement est encore plus rapide ;-).
Lors de l'exécution en tant que CGI, oui, le projet entier doit être chargé pour chaque demande. FastCGI et mod_wsgi gardent le projet en mémoire et lui parlent sur un socket.
En fait, Python et PHP sont bytecompiled. Python rend le bytecode persistant (les fichiers .pyc et .pyo partout). –
Veuillez ajouter le tag "django" à la question –