sanic和tornado的簡單效能測試

2022-02-10 02:21:22 字數 3677 閱讀 1585

作業系統 : 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.2

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)

sanic測試結果:

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...