Python Flask vs Ruby Sinatra vs Go Martini vs Node Express

题外话一: 

最近一段时间,Cloud Insight接连发布了三种语言(Python, Node, Ruby)的SDK,Cloud Insight Agent也迎来了重大突破,发布了Windows监控第一个版本,总算可以松口气写点东西了~

题外话二:
偶然的机会看到一篇blog,文中详细的介绍了Flask(Python), Sinatra(Ruby)以及 Matini(Golang)这三类微型框架的用法,并提供了各个框架在Docker下的部署方式。然而,美中不足的是没有提供各个框架的性能对比情况,经过一番搜罗,发现了一篇对现今主流框架做性能对比的文章,找到两者的结合点,于是才有了今天这篇文章~


回归正题,之所以选择Flask(Python), Sinatra(Ruby), Matini(Golang)和Express(Node),主要是经验所限以及个人比较喜欢这类微型框架,下面我们就对各个框架在同等条件下的性能表现一探究竟。

本文源码地址:https://github.com/startover/fibonacci-webapp-benchmark

环境准备:

Docker

安装文档:https://docs.docker.com/engine/installation/

ab

CentOS/Redhat:

Ubuntu/Debian:

启动容器

性能测试

Python + Flask

Ruby + Sinatra

Go + Martini

Node + Express

总结:

Web framework avg min max
Flask(Python) 168ms 26ms 295ms
Sinatra(Ruby) 496ms 180ms 10507ms
Martini(Go) 48ms 14ms 112ms
Express(Node) 60ms 26ms 171ms

可见,Matini(Golang)和Express(Node)性能优势比较明显,也在意料之中,Flask(Python)表现中规中矩,相较之下,Sinatra(Ruby)的性能简直是没法忍(PS: 我不是Ruby黑)!感兴趣的亲们可以在自己的环境测试下。完。

参考链接:
https://realpython.com/blog/python/python-ruby-and-golang-a-web-Service-application-comparison/
https://medium.com/@tschundeee/express-vs-flask-vs-go-acc0879c2122#.6katm1qn2

1 收藏 评论

相关文章

可能感兴趣的话题



直接登录
跳到底部
返回顶部