Memuat naik fail 100 MB menggunakan permintaan FastAPI dan Python mengambil masa kira-kira 128 saat, jauh lebih perlahan daripada 0.5 saat yang diperlukan semasa menggunakan Flask.
Perbezaan dalam masa muat naik terutamanya disebabkan oleh cara data dikendalikan dalam FastAPI berbanding Flask. Apabila mengendalikan muat naik fail, FastAPI menggunakan SpooledTemporaryFile dengan saiz maksimum lalai 1 MB untuk data permintaan masuk. Apabila saiz fail melebihi 1 MB, data ditulis pada fail sementara pada cakera, menyebabkan proses muat naik yang lebih perlahan.
1. Penulisan Fail Segerak
Tentukan titik akhir menggunakan kata kunci def biasa dan bukannya kata kunci async def dan tulis fail secara serentak.
2. Penulisan Asynchronous (Menggunakan aiofiles)
Tentukan titik akhir menggunakan kata kunci async def dan gunakan aiofiles untuk penulisan fail tak segerak. Pendekatan ini memerlukan menunggu operasi fail selesai.
3. Menggunakan request.stream()
Akses badan permintaan sebagai strim menggunakan request.stream(). Kaedah ini membenarkan ketulan data diproses tanpa menyimpan seluruh badan dalam memori atau pada cakera, meningkatkan prestasi muat naik.
Untuk prestasi optimum apabila memuat naik fail yang lebih besar, pertimbangkan untuk menggunakan permintaan .stream() kaedah. Pendekatan ini memintas had saiz maksimum 1 MB dan membenarkan pemprosesan terus ketulan data tanpa operasi tulis/baca tambahan.
Atas ialah kandungan terperinci Mengapa Muat Naik Fail FastAPI Lambat Berbanding dengan Flask?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!