a0bba73ee20d597e7f864c0020e30941
传说中1200k的python微框架japronto
只因瞄到http://developer.51cto.com/art/201704/537960.htm这篇文章 也不知道哪里来的120万,也没有好几倍那么夸张。 英文原文在这里https://medium.com/@squeaky_pl/million-requests-per-second-with-python-95c137af319
只是个毫无意义的hello world benchmark 对比对象是go的标准库与fasthttp,竟然超出那么多,不科学
环境
1Mac mini (Late 2014)
2处理器: 2.6 GHz Intel Core i5
3内存: 8 GB 1600 MHz DDR3
4
5go version: go1.8 darwin/amd64
6python version: 3.6
7japronto version: 0.1.1 https://github.com/squeaky-pl/japronto
8fasthttp version: 最新 https://github.com/valyala/fasthttp
工具 hey https://github.com/rakyll/hey
go stdlib
1package main
2
3import (
4 "net/http"
5)
6
7func say(w http.ResponseWriter, r *http.Request) {
8 w.Write([]byte("hello world"))
9}
10
11func main() {
12 http.HandleFunc(`/`, say)
13 http.ListenAndServe(":8082", nil)
14}
go fasthttp
1package main
2
3import (
4 fst "github.com/valyala/fasthttp"
5 "fmt"
6)
7
8func Handler(c *fst.RequestCtx) {
9 c.Write([]byte("hello world"))
10}
11
12func main() {
13 var port = ":8081"
14 fmt.Println("serv on", port)
15 fst.ListenAndServe(port, Handler)
16}
python japronto
1from japronto import Application
2
3
4def hello(req):
5 return req.Response(text='hello world')
6
7
8app = Application()
9app.router.add_route('/', hello)
10app.run(debug=False)
测试结果
虽然只是简单的hello world测试,但是还是可以看出japronto的io处理还是极具效率的,只是以其目前的生态还难以投入生产,等其周边配套齐全后,应该是个非常不错的框架。
绝大多数环境下的服务器瓶颈都在于io,所以python的慢根本微不足道。而其简洁快速的开发与强大的胶水能力才是其杀手锏。
当然其部署也是个短板,永远没有go来得方便
上一篇golang快速入门
下一篇网页博客进化史