大規模データの FastAPI で JSON 応答パフォーマンスを最適化する方法

Barbara Streisand
リリース: 2024-10-19 06:00:03
オリジナル
908 人が閲覧しました

How to Optimize JSON Response Performance in FastAPI for Large Data?

大規模なデータを含む FastAPI での JSON 応答のパフォーマンスの向上

FastAPI ユーザーは、エンドポイント経由で大量の JSON データを返すときに大幅な遅延に遭遇します。包括的なソリューションには、データの取得、シリアル化、クライアント側の表示などのいくつかの要素への対処が含まれます。

データの抽出と読み取り

コード例で強調されているように、データはデータは最初に Pandas の read_parquet() 関数を使用して Parquet ファイルから抽出され、データが Pandas DataFrame に変換されます。効率を高めるには、大規模なデータセットを処理するために特別に設計された Dask などの代替ライブラリの利用を検討してください。 Dask の read_parquet() メソッドは、データの読み取り速度を大幅に向上させることができます。

JSON シリアル化

後続の JSON シリアル化ステップが主なパフォーマンスのボトルネックであることが判明しています。デフォルトでは、FastAPI は Python の標準 json.dumps() 関数を使用するため、最適なパフォーマンスが得られません。このプロセスを高速化するには、orjson や ujson などの代替 JSON エンコーダを使用して、シリアル化時間を大幅に短縮できます。

応答タイプの最適化

特定のシナリオでは、Pandas DataFrame を返します。 JSON 応答は、DataFrame と JSON 出力の両方に対する RAM 割り当てによりメモリの問題を引き起こす可能性があるためです。これに対処するには、ファイル パスを指定せずに df.to_json() を使用することを検討してください。これにより、JSON 出力がメモリに保存されずにクライアントに直接ストリーミングされます。

クライアント側の表示

最適化されたシリアル化技術を使用しても、クライアント側のブラウザーに大量のデータを表示すると、データの解析とレンダリングにより追加の遅延が発生する可能性があります。これを軽減するには、ブラウザ内表示の代わりにダウンロード リンクを提供するなどのオプションを検討して、データ処理をクライアントのマシンにオフロードします。

これらの手法を実装することで、開発者は、返される FastAPI エンドポイントのパフォーマンスを大幅に向上させることができます。大量の JSON データを処理し、応答性が高く効率的なユーザー エクスペリエンスを保証します。

以上が大規模データの FastAPI で JSON 応答パフォーマンスを最適化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!