小编给大家分享一下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次请求的平均每秒钟完成请求次数
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倍。
以上是“Python和Go语言每秒请求数对比的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注天达云行业资讯频道!