為什麼FastAPI的UploadFile比Flask慢?

Mary-Kate Olsen
發布: 2024-11-07 15:35:03
原創
536 人瀏覽過

Why is FastAPI's UploadFile Slow Compared to Flask?

與Flask 相比,FastAPI UploadFile 速度較慢

問題

使用FastAPI 和Python 請求上傳100 MB 檔案大約需要128 秒,明顯慢於使用時需要0.5秒Flask.

回應

上傳時間的差異主要是由於FastAPI 與Flask 中處理資料的方式造成的。處理檔案上傳時,FastAPI 使用 SpooledTemporaryFile 儲存傳入請求數據,預設最大大小為 1 MB。當檔案大小超過 1 MB 時,資料將寫入磁碟上的臨時文件,導致上傳過程變慢。

潛在解決方案

1.同步檔案寫入

使用常規def關鍵字而不是async def關鍵字定義端點並同步寫入文件。

2.非同步寫入(使用aiofiles)

使用async def關鍵字定義端點,並使用aiofiles進行非同步檔案寫入。此方法需要等待檔案操作完成。

3.使用 request.stream()

使用 request.stream() 以流形式存取請求正文。此方法允許處理大塊數據,而無需將整個正文儲存在記憶體或磁碟上,從而提高上傳效能。

關鍵建議

為了在上傳較大檔案時獲得最佳效能,請考慮使用該請求.stream() 方法。這種方法繞過了 1 MB 最大大小限制,並允許直接處理資料區塊,而無需額外的寫入/讀取操作。

以上是為什麼FastAPI的UploadFile比Flask慢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!