Python和Go语言每秒请求数对比的示例分析

小编给大家分享一下Python和Go语言每秒请求数对比的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

成都创新互联公司专注于网站建设,为客户提供网站设计制作、做网站、网页设计开发服务,多年建网站服务经验,各类网站都可以开发,品牌网站设计,公司官网,公司展示网站,网站设计,建网站费用,建网站多少钱,价格优惠,收费合理。

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

Python

server.py

from bottle import route, run  @route('/') def home():     article = {'name': 'A Royal Baby', 'body':'A slow news week'}     return article  def main():     run(host='localhost', port=8081)  if __name__ == '__main__':     main()

Go

server.go

package main  import (     "encoding/json"     "fmt"     "github.com/emicklei/go-restful"     "io"     "net/http" )  func main() {     ws := new(restful.WebService)     ws.Route(ws.GET("/").To(hello))     restful.Add(ws)     fmt.Print("Server starting on port 8080\n")      http.ListenAndServe(":8080", nil) }  func hello(req *restful.Request, resp *restful.Response) {     article := Article{"A Royal Baby", "A slow news week"}     b, _ := json.Marshal(article)     io.WriteString(resp, string(b)) }  type Article struct {     Name string     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次请求的平均每秒钟完成请求次数

RunPythonGo
11310.5813568.34
21332.8213092.95
31331.5413479.45
41306.0913271.58
51274.4913873.09

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

在本次测试中,Go在完成JSON响应方面比Python快10.26倍。

以上是“Python和Go语言每秒请求数对比的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


文章名称:Python和Go语言每秒请求数对比的示例分析
文章路径:http://myzitong.com/article/ihhido.html