自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

對比Python和Go語言的每秒請求數

開發(fā) 前端
我使用Python工作已經有幾年了,最近開始了一個關于GO的調查,主要看作是一個緩解瓶頸的實驗,還沒有大規(guī)模web服務器部署。

我使用Python工作已經有幾年了,最近開始了一個關于GO的調查,主要看作是一個緩解瓶頸的實驗,還沒有大規(guī)模web服務器部署。

我用不同語言寫了一個簡單的REST服務,使用ab工具檢測響應速度。

Python

server.py

  1. from bottle import route, run 
  2.  
  3. @route('/'
  4. def home(): 
  5.     article = {'name''A Royal Baby''body':'A slow news week'
  6.     return article 
  7.  
  8. def main(): 
  9.     run(host='localhost', port=8081
  10.  
  11. if __name__ == '__main__'
  12.     main() 

Go

server.go

  1. package main 
  2.  
  3. import ( 
  4.     "encoding/json" 
  5.     "fmt" 
  6.     "github.com/emicklei/go-restful" 
  7.     "io" 
  8.     "net/http" 
  9.  
  10. func main() { 
  11.     ws := new(restful.WebService) 
  12.     ws.Route(ws.GET("/").To(hello)) 
  13.     restful.Add(ws) 
  14.     fmt.Print("Server starting on port 8080\n"
  15.      http.ListenAndServe(":8080", nil) 
  16.  
  17. func hello(req *restful.Request, resp *restful.Response) { 
  18.     article := Article{"A Royal Baby""A slow news week"
  19.     b, _ := json.Marshal(article) 
  20.     io.WriteString(resp, string(b)) 
  21.  
  22. type Article struct { 
  23.     Name string 
  24.     Body string 

Go語言的版本明顯比Python版的更詳細,但我認為它仍然非常言簡意賅。Python服務器使用bottle框架,指定的article字典作為響應自動序列化返回。Go服務器使用go-restful包,這個包使得在Go中很容易構建RESTful API。

測試基準是在Macbook Pro上,CPU i7 2.4Ghz,16GB RAM。

使用下附命令:

ab -q -c 50 -n 1000 http://127.0.0.1:8080/ | grep "Requests per second"

結果

5次測試,1000次請求的平均每秒鐘完成請求次數

Run Python Go
1 1310.58 13568.34
2 1332.82 13092.95
3 1331.54 13479.45
4 1306.09 13271.58
5 1274.49 13873.09

Go平均完成13457次請求/秒,Python完成1311次請求/秒

在本次測試中,Go在完成JSON響應方面比Python快10.26倍。

我知道這些腳本非常的簡單,而且缺少實際應用中的邏輯——例如數據庫連接。也許有比ab更準確的測試方法,但我認為這些結果足以給你一個嘗試Go的理由。以我目前的經驗,從Python到編譯型語言有很多樂趣。

 

做過Python/Go基準測試的想一起分享么? 

英文原文:Python vs Go - Requests per Second

譯文鏈接:http://www.oschina.net/translate/python-vs-go-requests-per-second

責任編輯:林師授 來源: OSChina
相關推薦

2019-09-26 09:42:44

Go語言JavaPython

2023-12-15 14:38:00

GoRust編程語言

2021-03-27 22:21:48

HTTPPython數據

2022-05-31 09:57:36

編程語言Go語言Python

2022-02-09 16:02:26

Go 語言ArraySlice

2011-08-05 13:41:46

Go

2018-08-09 18:27:03

編程語言JavaPython

2021-04-12 05:55:29

緩存數據Axios

2018-04-19 14:54:12

2023-03-29 08:03:53

2024-11-04 08:16:08

Go語言Web 框架

2020-10-20 09:51:51

Vue 3 的組合

2020-10-20 09:30:13

Vue 3 API 數據

2020-09-16 12:18:28

GoJava模式

2017-04-24 14:39:01

PythonHTTP語言

2017-09-13 15:37:53

2023-11-21 15:46:13

Go內存泄漏

2023-12-30 18:35:37

Go識別應用程序

2012-06-15 09:56:40

2019-02-01 10:35:33

PythonGo語言編程語言
點贊
收藏

51CTO技術棧公眾號