回覆列表
  • 1 # 唐老鴨記錄

    現在一般python做web主要有三大部分,web server, web framework, async io.web server 承擔埠監聽和接受請求的任務web framework 主要承擔路由,業務邏輯等任務有了web server和web framework基本就能運行了。一般web framework庫(比如flask),主要部分是web framework, 同時也自帶一個性能不咋滴的web server,這樣你在開發和除錯時可以直接執行起來看看效果,但是在生產環境中,它自帶的web server效能就不夠用了。除了這種效能不咋地的自帶的web server,還有像gunicorn和uwsgi這種單獨實現的效能強勁的web server,這種單獨實現的web server和web framework配合起來用就可以提高整個應用的效能。由於python的多執行緒基本就是個擺設,python web中一般用協程+非同步IO的方式來實現併發。gevent就是一個協程+非同步IO的庫,其作用是將阻塞的應用變為非阻塞,來提高併發量。總結,gunicorn和uwsgi是web server, flask或者bottle是web framework, gevent是async io。目前大部分測試下,uwsgi比gunicorn效能更好。uwsgi是C語言實現,gunicorn是純Python實現,如果gunicorn有pypy加成應該效能會有所提高。

  • 中秋節和大豐收的關聯?
  • 如何醃製饞人又美味的小米椒?