一文讲解谁才是最快的Web框架

开课吧开课吧锤锤2021-06-29 16:59

    对于Web应用开发者而言,关于不同Web框架之间性能差异的争议由来已久。对于一个网络应用或服务而言,我们通常都希望处理速度越快越好。但由于实现语言、底层网络设计、并发处理、路由算法等种种因素的影响,不同的框架实现相同的逻辑,性能可能会有十倍乃至百倍的差异。

web

    究竟哪个Web框架才是最快的,能够在一定的时间和系统资源内,处理更多的请求?Web-Frameworks,这个项目或许能给出一些有价值的信息。

    简介

    Web-Frameworks,是the-benchmarker组织在Github上开源的Web框架性能测试比较工具和排行榜。项目使用:

    Ruby:用于编写所有工具脚本

    wrk:并发性能测试工具

    PostgreSQL:测试结果存储的数据库

    Docker:每个测试都使用Docker容器进行隔离

    jq:处理Docker元数据

    Web-Frameworks部署方便,且很容易扩展,可以添加自定义的框架和测试脚本,并提供了丰富的结果输出方式。

    使用Web-Frameworks,可以测试在不同硬件环境下框架的性能表现,以及不同框架之间的比较,能够对框架选择和性能评估能提供参考。

    使用

    要安装Web-Frameworks,使用Ruby的依赖管理工具bundle安装

bundle install
bundle exec rake config

    然后使用Make构建:

export FRAMEWORK=php/lumen
cd ${FRAMEWORK} 
make -f .Makefile build

    最后,运行性能测试和数据收集脚本:

make -f ${FRAMEWORK}/.Makefile collect

    截至2021-03-16,Web-Frameworks提供了25种语言、226个Web框架的性能测试比较排行榜。测试运行环境为:

    CPU:8核,AMDFX-8320E

    内存:16GB

    操作系统:Fedora

    Docker:version20.10.0-rc1,build5cc2396

    使用wrk进行并发性能测试,使用8线程,超时时间为8秒,测试持续15秒,分别在并发为64、256和512并发连接的情况下进行测试。按照64并发下最高qps进行排序,得到了如下的框架性能排名(截取前十名):

web

    排名第一的,是Java框架ActiveJ,一个异步HTTP应用平台,以其高效的IO效率著称。其建立在高性能的事件循环和CSP之上,并提供了GC-友好的资源管理策略。在测试中,其达到了172615.83请求每秒的优越性能。

    排名二、三的,是两个PHP框架,Webman和Workerman,其中Webman是基于Workerman的优化版本。而Workerman则是一个异步的、事件驱动的高性能PHPWeb应用框架,配有详尽的中文文档。

    第四名则是一个Go框架Gearbox,这是一个用于构建微服务的、专注于高性能的Web框架。其基于另一个Go项目fasthttp,并使用了优化的基数树实现路由算法。

    第五名是PHP框架mark,其同样基于排名第三的Workerman。第六到第八名,则是连续的三个Go框架:Fiber,Atreugo和Fasthttp,包括第十名的gorouter-fasthttp均是专注于性能的轻量级Web框架。第九名,则是有一门比较冷门的语言Nim实现的框架httpbeast,充分利用了Nim语言的高性能特性。

    十一到二十名,则由4个Java框架、2个Javascript框架,和1个的Go、Clojure、Kotlin以及Kotlin框架组成。

web

    截至2021-03-16,Web-Frameworks提供了全部25种语言、226个Web框架的性能排行榜,绝大多数常见的网络框架都在其中,如:

    24名的Vertx,27名的Swoole,47名的Gin,62名的Beego,70名的Spring,155名的Express,191名的Django,209的RubyRails,223的Laravel,……

    Web-Frameworks提供了简便的性能测试工具集,并覆盖率极为广泛的网络框架,提供了一个具有参考价值并发性能的排行榜,对于框架选择和性能评估有一定意义。

    然而,该测试和排行榜仅仅基于数个简单接口的实现,缺乏更为深入的优化;只对每秒请求数这一指标进行了比较,缺乏包括延迟、并发稳定性、资源占用程度等等的评估,不能完全代表各个框架在实践中的真正性能表现。

    以上就是开课吧广场小编整理的“一文讲解谁才是最快的Web框架”一文,更多Web教程相关内容尽在开课吧广场Web教程频道!

免责声明:本站所提供的内容均来源于网友提供或网络搜集,由本站编辑整理,仅供个人研究、交流学习使用。如涉及版权问题,请联系本站管理员予以更改或删除。
有用
分享
全部评论快来秀出你的观点
登录 后可发表观点…
发表
暂无评论,快来抢沙发!
云开发实战特训营