只要 2 招!讓 Flask 效能就像是坐上一台噴射機~

用過 Flask 的都說簡單好寫,但效能確實比不上 FastAPI 甚至是其他語言寫成的 Web 應用。

如果你是新專案大可直接選擇使用 FastAPI 進行開發,擺脫效率較慢的宿命;不過有些專案早已用 Flask 開發的話,就不見得能說換就換,畢竟對開發團隊來說轉換成本與開發時間也是需要考量的要點,所幸現在可以用 Quart 搭配 Hypercorn 或 Unicorn 簡單提升 Flask 的效能,過程也不用改太多 code (超爽

Quart 其實就是 Flask 的 reimplement, 但是支援 asyncio 以及 WebSockets 等功能,理論上 Flask 的應用,可以無痛直接換成 Quart 就能夠得到效能提升。

而 Hypercorn 與 Unicorn 則是 Gunicorn 的替代方案,效能也較好,換掉 Gunicorn 可以再進一步提升效能,何樂而不為呢!

根據下列 Medium 文章的測試,這兩招就大概提升了近 20 倍的效能 🤩:

Through a series of relatively simple upgrades, we were able to take a simple Flask app from 10 requests per second to around 200 requests per second, with only two processes!

https://levelup.gitconnected.com/supercharging-pythons-scalability-1eec2f501dd5

不過如果你的應用是 CPU-bound 的話,那其實這 2 招多半助益不大,還是花錢租更好的機器或者關鍵運算部分改用 C, Go, Rust 等語言實作吧⋯⋯。

Quart ➡ https://pgjones.gitlab.io/quart/

Hypercorn ➡ https://pgjones.gitlab.io/hypercorn/

Uvicorn ➡ https://www.uvicorn.org/

FOLLOW US

對抗久坐職業傷害

研究指出每天增加 2 小時坐著的時間,會增加大腸癌、心臟疾病、肺癌的風險,也造成肩頸、腰背疼痛等常見問題。

然而對抗這些問題,卻只需要工作時定期休息跟伸展身體即可!

你想輕鬆改變現狀嗎?試試看我們的 PomodoRoll 番茄鐘吧! PomodoRoll 番茄鐘會根據你所設定的專注時間,定期建議你 1 項辦公族適用的伸展運動,幫助你打敗久坐所帶來的傷害!

贊助我們的創作

看完這篇文章了嗎? 休息一下,喝杯咖啡吧!

如果你覺得 MyApollo 有讓你獲得實用的資訊,希望能看到更多的技術分享,邀請你贊助我們一杯咖啡,讓我們有更多的動力與精力繼續提供高品質的文章,感謝你的支持!