python高效能框架-japronto淺測
阿新 • • 發佈:2019-02-12
前言:很久之前就聽說python有個web框架可以媲美go、nodejs等高效能語言,週末有空特地看了下。
--------
背景瞭解:
japronto是一個全新的,為微服務量身打造的python微框架,關於它的詳細介紹可以看轉載的這篇文章《用
Python 實現每秒處理 120 萬次 HTTP 請求》http://blog.csdn.net/u013128262/article/details/77415968,作者自己做了較詳細的介紹。
官方英文介紹:Screaming-fast Python 3.5+ web micro-framework integrated with pipelining HTTP server based
on uvloop and picohttpparser.
安裝:
機器:騰訊雲香港機房1核1G1M(最便宜那種)
作業系統:ubuntu 16.04
python版本:python 3.5
sudo apt install python3-pip 安裝python3的pip
pip 安裝:
安裝失敗,連續換了幾個源都找不到這個框架,遂放棄直接pip安裝的思路。
原始碼安裝:
python setup.py install 即可。
hello world!:
japronto用起來和flask有點像,一個基礎的hello world如下:
python3 hello.py 直接啟動。 curl 127.0.0.1:8080 可以看到服務起來了。 壓測一下: 這裡我們選擇wrk。 安裝非常簡單: git clone https://github.com/wg/wrk.git 進入目錄,直接make即可生成二進位制可執行檔案。 來一發小的壓測:
這種最基礎的機器還能達到8k qps 持續壓20min看看:
也是能穩定到7k qps。 因為我的雲主機比較差,7k qps的意義看不出來,我們這裡就拿flask做個對比
邏輯幾乎一模一樣,最簡單的那種,看看我們的效果如何:
僅有550+ qps。 ----------------------------------- japronto現在沒有一家公司在現網大規模使用,但是其高效能的表現是非常不俗的,這得益於其核心模組都是用c實現的。
from japronto import Application def hello(request): return request.Response(text='Hello world!') app = Application() app.router.add_route('/', hello) app.run(debug=True)
python3 hello.py 直接啟動。 curl 127.0.0.1:8080 可以看到服務起來了。 壓測一下: 這裡我們選擇wrk。 安裝非常簡單: git clone https://github.com/wg/wrk.git 進入目錄,直接make即可生成二進位制可執行檔案。 來一發小的壓測:
這種最基礎的機器還能達到8k qps 持續壓20min看看:
也是能穩定到7k qps。 因為我的雲主機比較差,7k qps的意義看不出來,我們這裡就拿flask做個對比
from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello World!' if __name__ == '__main__': app.run()
邏輯幾乎一模一樣,最簡單的那種,看看我們的效果如何:
僅有550+ qps。 ----------------------------------- japronto現在沒有一家公司在現網大規模使用,但是其高效能的表現是非常不俗的,這得益於其核心模組都是用c實現的。