Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Mengoptimumkan Masa Respons FastAPI untuk Data JSON Besar?

Bagaimana untuk Mengoptimumkan Masa Respons FastAPI untuk Data JSON Besar?

Susan Sarandon
Lepaskan: 2024-10-18 23:00:30
asal
1001 orang telah melayarinya

How to Optimize FastAPI Response Time for Large JSON Data?

Mempercepatkan Respons FastAPI untuk Data JSON Besar

FastAPI ialah rangka kerja berprestasi untuk membina API, tetapi ia boleh menghadapi kesesakan apabila mengembalikan jumlah yang besar daripada data JSON. Dalam senario ini, punca selalunya ialah penukaran data yang memakan masa ke dalam format JSON.

Pilihan 1: Pengekod JSON Tersuai (Kemas kini 2)

Penyelesaian terpantas terletak pada memintas pengekod JSON lalai FastAPI dan menggunakan pengekod yang lebih cekap seperti orjson atau ujson. Pertimbangkan coretan kod ini:

<code class="python">@app.get("/orjson")
def get_data_orjson():
    df = pd.read_parquet('data.parquet')
    return Response(orjson.dumps(df.to_dict(orient='records')), media_type="application/json")</code>
Salin selepas log masuk

Pilihan 2: Direct Pandas JSON

Pendekatan yang lebih cekap ialah menggunakan penukaran JSON terbina dalam Pandas. Berikut ialah contoh:

<code class="python">@app.get("/pandasJSON")
def get_data_pandasJSON():
    df = pd.read_parquet('data.parquet')
    return Response(df.to_json(orient="records"), media_type="application/json")</code>
Salin selepas log masuk

Pilihan 3: Penstriman Potongan

Untuk set data yang sangat besar, pertimbangkan penstriman potongan untuk mengelakkan masalah memori. Pandas menyediakan fungsi seperti read_csv atau read_parquet dengan parameter chunksize untuk pemprosesan data tambahan.

Pilihan 4: Dask DataFrame

Untuk data yang melebihi memori yang tersedia, perpustakaan Dask DataFrame boleh digunakan untuk memproses dan menukar data besar kepada JSON dengan cekap. Dask mendayakan pengiraan selari dan boleh mengendalikan set data besar-besaran yang boleh menyebabkan isu prestasi dalam operasi Pandas biasa.

Perbandingan Prestasi

Kod sampel yang disediakan membolehkan anda membandingkan prestasi pendekatan yang berbeza secara langsung. Laksanakan apl dan akses setiap titik akhir (/defaultFastAPIencoder, /orjson, /ujson, /pandasJSON) untuk melihat masa tindak balas.

Pertimbangan Tambahan

Besar Paparan: Jika data JSON bertujuan untuk dipaparkan pada sisi klien, ia mungkin kelihatan tertangguh. Ini disebabkan oleh had prestasi penyemak imbas dalam mengendalikan data yang luas.

Memuat Turun Data: Memudahkan muat turun data pengguna ialah penyelesaian yang lebih cekap. Anda boleh menggunakan pengepala Pelupusan Kandungan dalam respons untuk menunjukkan bahawa fail perlu dimuat turun.

Ringkasnya, mengoptimumkan masa tindak balas FastAPI untuk data JSON yang besar memerlukan pertimbangan yang teliti terhadap kaedah dan teknik penukaran data yang mengutamakan kecekapan dan kebolehskalaan.

Atas ialah kandungan terperinci Bagaimana untuk Mengoptimumkan Masa Respons FastAPI untuk Data JSON Besar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan