Amélioration des performances de la réponse JSON dans FastAPI avec des données volumineuses
Les utilisateurs de FastAPI rencontrent des retards importants lors du renvoi de données JSON volumineuses via des points de terminaison. Une solution complète implique de prendre en compte plusieurs facteurs, notamment la récupération des données, la sérialisation et l'affichage côté client.
Extraction et lecture de données
Comme souligné dans l'exemple de code, les données est initialement extrait d'un fichier Parquet à l'aide de la fonction read_parquet() de Pandas, qui convertit les données en un Pandas DataFrame. Pour améliorer l'efficacité, envisagez d'utiliser des bibliothèques alternatives telles que Dask, spécialement conçues pour gérer de grands ensembles de données. La méthode read_parquet() de Dask peut améliorer considérablement la vitesse de lecture des données.
Sérialisation JSON
L'étape de sérialisation JSON suivante s'avère être le principal goulot d'étranglement des performances. Par défaut, FastAPI utilise la fonction json.dumps() standard de Python, ce qui entraîne des performances sous-optimales. Pour accélérer ce processus, des encodeurs JSON alternatifs comme orjson ou ujson peuvent être utilisés, réduisant considérablement les temps de sérialisation.
Optimisation du type de réponse
Dans certains scénarios, renvoyer un Pandas DataFrame car une réponse JSON peut entraîner des problèmes de mémoire en raison de l'allocation de RAM pour le DataFrame et la sortie JSON. Pour résoudre ce problème, envisagez d'utiliser df.to_json() sans spécifier de chemin de fichier, qui transmet la sortie JSON directement au client sans la stocker en mémoire.
Affichage côté client
Même avec des techniques de sérialisation optimisées, l'affichage de données substantielles sur le navigateur côté client peut introduire des retards supplémentaires en raison de l'analyse et du rendu des données. Pour atténuer ce problème, explorez des options telles que la fourniture d'un lien de téléchargement au lieu de l'affichage dans le navigateur, déchargeant ainsi le traitement des données sur la machine du client.
En mettant en œuvre ces techniques, les développeurs peuvent améliorer considérablement les performances des points de terminaison FastAPI renvoyant de grandes quantités de données JSON, garantissant une expérience utilisateur réactive et efficace.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3