Daniel Roy Greenfeld : Utiliser pyinstrument pour profiler les applications Air
Air, basé sur FastAPI, peut tirer parti de pyinstrument pour le profilage des performances. Pour activer cela, installez à la fois air[standard] et pyinstrument. Le code d'exemple montre comment intégrer pyinstrument en l'activant conditionnellement en fonction d'une variable d'environnement nommée PROFILING. Ceci est crucial pour éviter les surcoûts de performance dans les environnements de production. Une fonction middleware, profile_request, intercepte les requêtes HTTP. Si un paramètre de requête profile est présent, pyinstrument commence le profilage. Après que la requête a été traitée par call_next, pyinstrument s'arrête et renvoie une sortie HTML des résultats du profilage. Cela permet une inspection visuelle des goulots d'étranglement de performance. L'application comprend une page index avec des liens pour simuler des délais à l'aide de asyncio.sleep. Ces liens peuvent être accédés avec le paramètre de requête profile=1 pour déclencher le profilage. Pour exécuter l'application avec le profilage activé sans définir définitivement la variable d'environnement, préfixez la commande du serveur de développement avec PROFILING=1. Par exemple, PROFILING=1 fastapi dev main.py activera le profilage pour cette exécution spécifique. Les résultats du profilage peuvent ensuite être consultés en naviguant vers http://localhost:8000 dans votre navigateur.
air[standard]etpyinstrument. Le code d'exemple montre comment intégrer pyinstrument en l'activant conditionnellement en fonction d'une variable d'environnement nomméePROFILING. Ceci est crucial pour éviter les surcoûts de performance dans les environnements de production. Une fonction middleware,profile_request, intercepte les requêtes HTTP. Si un paramètre de requêteprofileest présent, pyinstrument commence le profilage. Après que la requête a été traitée parcall_next, pyinstrument s'arrête et renvoie une sortie HTML des résultats du profilage. Cela permet une inspection visuelle des goulots d'étranglement de performance. L'application comprend une pageindexavec des liens pour simuler des délais à l'aide deasyncio.sleep. Ces liens peuvent être accédés avec le paramètre de requêteprofile=1pour déclencher le profilage. Pour exécuter l'application avec le profilage activé sans définir définitivement la variable d'environnement, préfixez la commande du serveur de développement avecPROFILING=1. Par exemple,PROFILING=1 fastapi dev main.pyactivera le profilage pour cette exécution spécifique. Les résultats du profilage peuvent ensuite être consultés en naviguant vershttp://localhost:8000dans votre navigateur.