"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment optimiser FastAPI pour des retours de données JSON efficaces ?

Comment optimiser FastAPI pour des retours de données JSON efficaces ?

Publié le 2024-11-08
Parcourir:824

How to Optimize FastAPI for Efficient JSON Data Returns?

Optimisation FastAPI pour le renvoi de données JSON volumineuses

Le renvoi de vastes ensembles de données JSON via FastAPI peut être une tâche fastidieuse. Pour résoudre ce goulot d'étranglement, nous explorons des approches alternatives qui améliorent les performances.

Identification du goulot d'étranglement :

L'approche initiale consistant à analyser le fichier Parquet en JSON à l'aide de json.dumps( ) et json.loads() est inefficace. L'encodeur JSON par défaut de FastAPI introduit une surcharge importante.

Encodeurs alternatifs :

Une solution consiste à utiliser des encodeurs JSON plus rapides comme orjson ou ujson. Ces alternatives offrent une amélioration substantielle par rapport à l'encodeur par défaut de FastAPI.

Personnalisation des encodages de réponse :

En contournant l'encodeur par défaut de FastAPI et en convertissant directement les données en JSON dans la réponse, nous peut optimiser le processus d’encodage. Cela implique la création d'une classe APIRoute personnalisée qui remplace le gestionnaire d'itinéraire et mesure le temps de réponse.

Exploiter l'encodeur Pandas JSON :

Utiliser la méthode to_json() de Pandas directement dans FastAPI offre d'excellentes performances. Cette méthode convertit le DataFrame en chaîne JSON, évitant ainsi les conversions inutiles et améliorant l'efficacité.

Diffusion de données en cas de problèmes de mémoire :

Dans les cas où des contraintes de mémoire surviennent en raison d'un excès de mémoire. données, envisagez les techniques de streaming. Le renvoi progressif des données peut atténuer efficacement les problèmes de mémoire.

Solution alternative : Dask

Pour les ensembles de données exceptionnellement volumineux, envisagez d'utiliser Dask, une bibliothèque spécialisée conçue pour gérer de tels volumes. La méthode read_parquet() de Dask permet une intégration transparente avec les fichiers Parquet.

Considérations supplémentaires :

Si l'affichage des données sur le navigateur entraîne des retards, définissez l'en-tête Content-Disposition avec le paramètre attachment invite le navigateur à télécharger les données au lieu de les restituer. De plus, garantir que le paramètre path est spécifié lors de l'utilisation des méthodes to_json() ou to_csv() dans Pandas évite les problèmes potentiels de mémoire en évitant le stockage en mémoire du grand ensemble de données.

Déclaration de sortie Cet article est réimprimé à l'adresse : 1729263376. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

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