Il existe plusieurs façons de profiler les vues Django. Par exemple custom middleware ou this custom tab pour la barre d'outils Django Debug.Comment profiler le middleware de Django?
Quelle est la manière de profiler le middleware django lui-même?
Il existe plusieurs façons de profiler les vues Django. Par exemple custom middleware ou this custom tab pour la barre d'outils Django Debug.Comment profiler le middleware de Django?
Quelle est la manière de profiler le middleware django lui-même?
Vous pouvez encapsuler tous les autres logiciels intermédiaires. Dans votre middleware le plus externe, au process_request
, démarrez le profilage. J'utilise généralement profile.enable()
et profile.disable()
avec une instance cProfile.Profile
, cela me permet de démarrer et d'arrêter le profilage à un point arbitraire, alors que profile.runcall()
exige que vous appeliez une fonction réelle, ce qui n'est pas le cas du middleware dans Django.
Dans votre middleware le plus interne, définissez process_view()
pour renvoyer simplement HttpResponse('')
. De cette façon, la vue elle-même n'est pas appelée et ne sera pas incluse dans votre profil.
Ensuite, dans votre middleware le plus externe, définissez à nouveau process_response()
pour arrêter le profilage et afficher le profil dans le navigateur ou dans un fichier.
Si vous souhaitez supprimer tout autre élément que le middleware des résultats de profilage, vous pouvez simplement créer une vue vide qui renvoie une réponse HttpResponse vide.
La fonctionnalité de l'intergiciel peut très bien dépendre de la vue appelée ou de l'URL à laquelle accéder. – knbk