TechEmpower framework Benchmarks
基于TechEmpower的《Web framework Benchmarks》性能基准测试的解读之后
注:带星号的项目支持完整的ORM和模板技术
C++和Rust都是只提供编译期反射的,所以实现ORM的方法有两种,一种是带生成器,需要工具和预处理。一种是利用宏和模板技术来生成代码。
Lithium这个项目和其它妖艳贱货不一样,代码优雅得一塌糊涂,而且性能惊人Lithium(ORM)(RAW)以 59.2%的成绩一骑绝尘。虽然使用宏和模板有点烧脑,但还是值得一看。
对比Rust的Diesel,仅取得了24%的成绩还是有很大提升空间的。Golang的框架测试代码中没有一个带ORM,是因为Golang的反射机制还是很慢的,直接拖累了性能。
PHP一直热衷于各种用底层代码来提升性能,但是由于各种原因,成果有限。即使异步PHP框架swoole的出现,彻底舍弃了PHP的基本机制,使得性能有了极大提升,也没有引起大的改变,但纯PHP实现的异步框架Workerman却有可能改变这一情况。使用Workerman的Ubiquity框架竟然打败了一众框架勇夺第二名。性能提升几十倍,堪称恐怖。原来PHP已经足够优秀,只是打开方式不对。
Act(ORM)(Rythm): 28.9%
Ubiquity(ORM)(PHP):28.1%
Actix(Diesel)(HBS): 23.6%
AspCore(EF)(ASP): 23.3%
由于Javascript使用Node.js的异步机制,使得JS框架出道即巅峰,其它脚本语言只有奋起追赶的份。此次PHP打了一个翻身仗,让Javascript领先的局面,一下子变得落后一步。
而Ruby阵营的变化也让Ruby有了超过Javascript的实力,Roda的性能在已经是Python性能一倍的基础上再翻一倍,在没有完全使用异步架构的情况下,有如此成绩,让人不禁有所期待。
脚本开发的性能排名也即将从Javascript>Ruby>Python>>>>>>>>>PHP,变成了PHP>>>Ruby>Javascript>Python。Python也从感觉良好一下子变成了学渣,没有了存在感。
排名:Drogon(RAW)(CSP):100%
Drogon(MORM)(CSP):81.6%
仓库:https://github.com/an-tao/drogon
排名:Lithium(ORM)(RAW): 59.2%
仓库:https://github.com/matt-42/lithium
排名:Actix(RAW)(HBS): 89.5%
Actix(Diesel)(HBS): 23.6%
仓库:https://github.com/actix/actix-web
排名:May-minihttp(RAW)(Markup): 70.3%
仓库:https://github.com/Xudong-Huang/may_minihttp
排名:Atreugo(RAW)(QuickT): 53.4%
仓库:https://github.com/savsgio/atreugo
排名:Gofiber(RAW)(QuickT): 44.5%
仓库:https://github.com/gofiber/fiber
排名:(未知)
仓库:https://github.com/kataras/iris
排名:Vert.x(RAW)(Rocker): 51.2%
仓库:https://github.com/eclipse-vertx/vert.x
排名:Jooby(RAW)(Rocker): 46.1%
仓库:https://github.com/jooby-project/jooby
排名:Act(ORM)(Rythm): 28.9%
仓库:https://github.com/actframework/actframework
排名:AspCore(RAW)(ASP): 42.1%
AspCore(EF)(ASP): 23.3%
排名:Kemal(RAW)(ECR):30.8%
仓库:https://github.com/kemalcr/kemal
排名:http4k(RAW)(PEB):29.9%
仓库:https://github.com/http4k/http4k
排名:workerman(RAW)(PHP): 52.0%
kumbiaphp(RAW)(PHP):36.8%
Ubiquity(ORM)(PHP):28.1%
仓库:https://github.com/walkor/workerman
https://github.com/KumbiaPHP/KumbiaPHP
https://github.com/phpMv/ubiquity
排名:swoole(RAW)(PHP): 41.8%
ubiquity(ORM)(PHP):20.7%
Imi(ORM)(PHP):17.9%
仓库:https://github.com/swoole/swoole-src
https://github.com/phpMv/ubiquity
https://github.com/Yurunsoft/IMI
排名:Laravel-swoole(ORM)(PHP): 3.1%
Laravel(ORM)(PHP): 0.8%
仓库:https://github.com/laravel/laravel/
排名:Roda(sequel)(ERB): 7.5%
仓库:https://github.com/jeremyevans/roda
排名:Sinatra(sequel)(Slim): 5.0%
仓库:https://github.com/sinatra/sinatra
排名:Nestjs(ORM)(HBS): 10.0%
仓库:https://github.com/nestjs/nest
排名:Koa(ORM)(HBS): 6.8%
仓库:https://github.com/koajs/koa
排名:Sanic(RAW)(Jinja2): 9.6%
仓库:https://github.com/sanic-org/sanic
排名:Django(ORM)(TMP): 2.2%
仓库:https://github.com/django/django
排名:Flask(RAW)(Jinja2): 3.4%
Flask(ORM)(Jinja2): 1.5%
仓库:https://github.com/pallets/flask