WEB开发框架性能排行与趋势分析

WEB开发框架性能基准测试解读与趋势分析前端

  

TechEmpower的《Web Framework Benchmarks》性能基准测试,是关注Web开发框架发展的重要途径。可是内容数据众多,每次看都耗费大量时间。这是根据Round17(2018-10-30)测试结果作的整理笔记,以及结合多轮结果作的趋势分析。api

 

Web框架性能排名

首先,根据开发为出发点,排除了纯服务器和ORM不完善的框架。每种语言也仅仅选择了一两种性能靠前,比较知名的框架。专门的resty框架,也因为差别较大,没有收录。所得的框架性能排名以下(以H2O服务器速度为基准100%):前端框架

 

 

一、主流语言的异步框架

因为Web开发的标杆语言Java的标志性框架Spring,在SpringBoot2.0框架中推出了WebFlux异步核心。全面标志着Web开发已经由大服务器与容器时代,转向了异步时代。而Servlet技术所表明的容器技术,已经成了备选。服务器

 

 

这次,入选第一集团的全部框架都是异步框架。且都有着不输于C++的性能表现。好比此次夺冠的是Rust语言框架Actix,有着纯服务器50%以上的性能,比较让人惊喜。须要说明的是这次数据中没有出现SpringBoot,不过根据网上Vertx+SpringBoot的实际性能测试表现《Spring Boot同步架构与Vert.x异步架构高并发性能对比》,把SpringBoot加入了排名。多线程

 

二、新兴语言的异步框架

这次,排名第二集团的全部框架,都是新兴语言。使人诧异的是Golang的框架表现不佳。这可能和Golang的社区热度不高有关。影响了相关框架的开发迭代速度,致使成熟度不高。Golang中性能最好的Iris框架这次没有参评,否则性能仍是有提高空间的。而后,这次没有收录的Swift语言Vapor框架也是值得关注的。架构

 

三、脚本语言的异步框架

脚本语言因为其原理限制,性能不能和主流语言比较,已是很是好的表现了。并发

 

四、主流语言的传统框架

以Java语言Servlet容器技术为表明的传统框架,因为不一样技术的层层包裹之下,其性能已经被异步框架远远抛下。这次Spring框架7.3%的性能仍是有点偏低的,实际表现应该会更好。框架

 

五、脚本语言的传统框架

以Ruby和Python语言为表明的Web开发脚本语言,是表现比较稳定的框架。其提高空间也不会太大。它的异步框架,好比Python的Tornado和Sanic,因为体系和机制的问题,性能有必定提高,但有限。异步

 

六、PHP语言的传统框架

因为Php语言的原理限制,对Php的性能影响最大的仍是其使用方式,不恰当的设计会使程序性能急剧降低,因此哪怕PHP的实际性能并不低的状况下,其框架和程序的表现只能用糟糕来形容。实际使用中,Python和Php两个功能基本类似的程序,性能相差5倍以上很常见。因此,对于Php你们仍是谨慎选择。jvm

 

Web框架发展趋势分析

有人说,异步框架就是把单线程变成了多线程,每一个任务并无变化。这种观点是不正确的。异步框架之因此有着近5倍的巨大性能提高,主要得益于开源。开源使得原来由异步核心+Web服务器+Servlet容器+JSP+Web框架等许许多多软件配合的事情,变成由一个框架来提供,中间节省了巨大的空间和时间开销。因此Web框架的发展方向是偏平化,逐步会淘汰中间环节,变成大一统框架。一如Spring框架的演变过程。

另外一方面,脚本语言本来生态上就是以开源为根基,框架融合带来的性能提高并无主流语言那么大。脚本语言的开发地位会发生动摇。毕竟若是主流语言的性能有10到20倍提高,那么脚本语言的开发速度就再也不是关注重点。

最后,咱们能够看到,随着前端框架的发展,数据与页面分离成为常态。摧生了大量的Resty框架。revenj-jvm的性能甚至达到了70.5%。并且,能够预见的,Resty框架会迅速向GraphQL为表明的查询语言框架演进。Web框架将会变得愈来愈快,愈来愈薄。

 

附表

1、主流语言的异步框架
Actix+Diesel(Rust)
Vert.x+SpringBoot(Java)
ActFramework(Java)
AspCore+Kestrel(.Net)
Silicon Web(C++)
二、新兴语言的异步框架
Amber(Crystal)
Ktor(Kotlin)
Gin(Golang)
Echo(Golang)
三、脚本语言的异步框架
Lapis(Lua)
Koa(Node.js)
Express(Node.js)
四、主流语言的传统框架
SpringBoot+SpringMVC(Java)
五、脚本语言的传统框架
Sinatra+Sequel(Ruby)
Django(Python)
Flask+SQLAlchemy(Python)
六、PHP语言的传统框架
CodeIgniter(PHP)
Laravel(PHP)

 

(完)

相关文章
相关标签/搜索