「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > 大規模データの FastAPI で JSON 応答パフォーマンスを最適化するにはどうすればよいですか?

大規模データの FastAPI で JSON 応答パフォーマンスを最適化するにはどうすればよいですか?

2024 年 11 月 8 日に公開
ブラウズ:863

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 データを処理し、応答性が高く効率的なユーザー エクスペリエンスを保証します。

リリースステートメント この記事は次の場所に転載されています: 1729263623 権利侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3