作業系統 : centos7.3.1611_x64
python 版本 : 3.6.8
tornado版本:6.0.2
sanic版本:19.9.0
cpu : intel(r) core(tm) i5-2320 cpu @ 3.00ghz 4核
之前一直使用tornado作為http相關python程式的框架,最近查資料發現新出的sanic效能很高,這裡在同樣硬體條件下使用ab進行簡單的壓測。
安裝apache ab工具:
yum -y install httpd-tools壓測命令:
引數說明:
-c :模擬併發數
-n : 總請求數
使用tornado實現的簡單http伺服器**:
使用sanic實現的簡單http伺服器**:
tornado測試結果:
server software: tornadoserver/6.0.2sanic測試結果:server hostname:
127.0.0.1
server port:
9093
document path: /document length:
12bytes
concurrency level:
30time taken
for tests: 82.282
seconds
complete requests:
100000
failed requests:
0write errors:
0total transferred:
20700000
bytes
html transferred:
1200000
bytes
requests per second:
1215.33 [#/sec] (mean)
time per request:
24.685
[ms] (mean)
time per request:
0.823
[ms] (mean, across all concurrent requests)
transfer rate:
245.68 [kbytes/sec] received
connection times (ms)
min mean[+/-sd] median max
connect: 00
0.20
8processing: 125
10.3
2574
waiting: 124
10.3
2574
total: 125
10.3
2574
percentage of the requests served within a certain
time
(ms)
50% 25
66% 30
75% 33
80% 34
90% 37
95% 39
98% 41
99% 42
100% 74 (longest request)
server software:從測試結果可以看到,開啟兩個程序情況下:server hostname:
127.0.0.1
server port:
9093
document path: /document length:
12bytes
concurrency level:
30time taken
for tests: 20.164
seconds
complete requests:
100000
failed requests:
0write errors:
0total transferred:
11100000
bytes
html transferred:
1200000
bytes
requests per second:
4959.29 [#/sec] (mean)
time per request:
6.049
[ms] (mean)
time per request:
0.202
[ms] (mean, across all concurrent requests)
transfer rate:
537.58 [kbytes/sec] received
connection times (ms)
min mean[+/-sd] median max
connect: 02
0.52
11processing: 14
1.54
38waiting: 04
1.43
37total: 16
1.56
41percentage of the requests served within a certain
time
(ms)
50% 6
66% 6
75% 7
80% 7
90% 7
95% 8
98% 9
99% 10
100% 41 (longest request)
tornado的cps是 1215.33 ,平均響應時間是 24.685 ms
sanic的cps是 4959.29 ,平均響應時間是 6.049 ms
修改併發數後的測試資料如下:
測試結果對比如下:
從測試資料來看,sanic的cps比tornado高,平均響應時間方面,sanic也比tornado短。
和tornado的簡單效能測試.rst
歡迎補充
Tornado的輸入和輸出。
此請求返回查詢字串中返回指定的引數name的值。如果出現多個同名引數,則返回最後乙個引數。strip表示是否過濾左右兩邊的空格字元。1.2 get query arguments q classindexhandle requesthandler defget self subject self.g...
非同步處理的框架Sanic的使用方法和小技巧
sanic是非同步處理的框架,運用sanic可以開發快速非同步響應的web程式。想必大家看到這個都會比較期待和興奮。那麼如何使用sanic來實現快速響應呢?我們先來看一看sanic的基本介紹。sanic類似flask 只支援python 3.5 版本的web 伺服器,執行速度更快。在類似flask的...
tornado框架SQLAlchemy的操作
在用到python的一些框架裡,需要進行前後端資料互動,其中資料庫的連線是必不可少的,之前自己使用sqlalchemy在進行資料庫連線時遇到了很多問題,以及一些流程不是很清楚。所以花了點時間進行了一下流程梳理。1.首先建立乙個空py檔案 這裡命名為connect.py 匯入包 from sqlalc...