对比Python和Go语言的每秒请求数

我使用Python工作已经有几年了,最近开始了一个关于GO的调查,主要看作是一个缓解瓶颈的实验,还没有大规模web服务器部署。

十载的中站网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站建设的优势是能够根据用户设备显示端的尺寸不同,自动调整中站建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联公司从事“中站网站设计”,“中站网站推广”以来,每个客户项目都认真落实执行。

我用不同语言写了一个简单的REST服务,使用ab工具检测响应速度。

Python

server.py

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

Go

server.go

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

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

网页名称:对比Python和Go语言的每秒请求数
本文路径:http://www.shufengxianlan.com/qtweb/news43/289843.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联