Isu Prestasi Fail Muat Naik FastAPI Berbanding dengan Kelalang
Pengendalian Fail Muat Naik FastAPI boleh menjadi lebih perlahan daripada Pengendalian Fail disebabkan perbezaan dalam pengendalian fail. Flask menggunakan penulisan fail segerak, manakala kaedah UploadFile FastAPI adalah tak segerak dan menggunakan penimbal dengan saiz lalai 1 MB.
Penyelesaian Prestasi Yang Dipertingkat
Untuk meningkatkan prestasi, laksanakan menulis fail secara tidak segerak dengan aiofiles perpustakaan:
<code class="python">from fastapi import File, UploadFile import aiofiles @app.post("/upload") async def upload_async(file: UploadFile = File(...)): try: contents = await file.read() async with aiofiles.open(file.filename, 'wb') as f: await f.write(contents) except Exception: return {"message": "There was an error uploading the file"} finally: await file.close() return {"message": f"Successfully uploaded {file.filename}"}</code>
Nota Tambahan
Penyelesaian Penstriman
Untuk prestasi yang lebih baik, pertimbangkan untuk mengakses kandungan permintaan sebagai strim tanpa menyimpan seluruh badan dalam ingatan atau direktori sementara:
<code class="python">from fastapi import Request import aiofiles @app.post("/upload") async def upload_stream(request: Request): try: filename = request.headers['filename'] async with aiofiles.open(filename, 'wb') as f: async for chunk in request.stream(): await f.write(chunk) except Exception: return {"message": "There was an error uploading the file"} return {"message": f"Successfully uploaded {filename}"}</code>
Atas ialah kandungan terperinci Mengapa Pengendalian UploadFail FastAPI Lebih Lambat Daripada Flask?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!