Web框架基准测试
发布日期:2021-06-30 18:59:39 浏览次数:3 分类:技术文章

本文共 10914 字,大约阅读时间需要 36 分钟。

Web Framework Benchmarks

这是许多执行基本任务(例如JSON序列化,数据库访问和服务器端模板组成)的Web应用程序框架的性能比较。每个框架都在实际的生产配置中运行。结果在云实例和物理硬件上捕获。测试实现主要是由社区贡献的,所有资源都可以从。

注意:我们使用“框架”一词来泛指平台,微框架和全栈框架。

在年,我们发布了比较几个执行简单但有代表性的任务(序列化JSON对象和查询数据库)的Web应用程序框架的性能的结果。自那时以来,社区的投入一直是巨大的。我们(现在为该项目的所有贡献者发言)一直在定期更新测试实现,扩大覆盖范围并在半定期更新(我们称为“回合”)中获取结果。

测试代码全平台:

 

彩图:

 

 

Best JSON responses per second, Dell R440 Xeon Gold + 10 GbE(186 tests)

Rnk Framework Best performance (higher is better) Errors Cls Lng Plt FE Aos IA
1 servlet 560,548 100.0% 0 Plt Jav Svt Res Lin Rea
2 revenj-jvm 554,142 98.9% 0 Ful Jav Svt Res Lin Rea
3 gemini 549,035 97.9% 0 Ful Jav Svt Res Lin Rea
4 ulib-json 535,616 95.6% 0 Plt C++ Non ULi Lin Rea
5 blaze 505,464 90.2% 0 Mcr Sca bla Non Lin Rea
6 grizzly 494,667 88.2% 0 Mcr Jav Svt Grz Lin Rea
7 undertow 490,725 87.5% 0 Plt Jav Utw Non Lin Rea
8 h2o 490,135 87.4% 0 Plt C Non Non Lin Rea
9 vertx-web 466,677 83.3% 0 Mcr Jav vtx Non Lin Rea
10 vertx 461,123 82.3% 0 Plt Jav ver Non Lin Rea
11 openresty 461,002 82.2% 0 Plt Lua OpR ngx Lin Rea
12 colossus 457,534 81.6% 0 Mcr Sca Akk Non Lin Rea
13 tokio-minihttp 449,705 80.2% 0 Mcr Rus Rus tok Lin Rea
14 finatra 441,072 78.7% 0 Mcr Sca Nty Non Lin Rea
15 netty 433,529 77.3% 0 Plt Jav Nty Non Lin Rea
16 falcon 432,895 77.2% 0 Mcr Py Non Mei Lin Rea
17 libreactor 427,211 76.2% 0 Mcr C Non Non Lin Rea
18 cpoll_cppsp 418,258 74.6% 0 Plt C++ Non Non Lin Rea
19 wicket 416,601 74.3% 0 Ful Jav Svt Res Lin Rea
20 finagle 391,735 69.9% 0 Mcr Sca Nty Non Lin Rea
21 cutelyst-thread 389,488 69.5% 0 Ful C++ cut Non Lin Rea
22 nodejs 372,531 66.5% 0 Plt JS njs Non Lin Rea
23 rapidoid-http-fast 372,076 66.4% 0 Plt Jav Rap Non Lin Rea
24 duda 370,911 66.2% 0 Plt C dud Mon Lin Rea
25 fintrospect 370,377 66.1% 0 Mcr Sca Nty Non Lin Rea
26 falcon-py3 362,461 64.7% 0 Mcr Py Non Mei Lin Rea
27 nickel 358,618 64.0% 0 Mcr Rus Rus Hyp Lin Rea
28 jlhttp 344,546 61.5% 0 Plt Jav JLH Non Lin Rea
29 rapidoid 343,704 61.3% 0 Plt Jav Rap Non Lin Rea
30 lapis 343,577 61.3% 0 Ful Lua OpR ngx Lin Rea
31 iron 341,296 60.9% 0 Mcr Rus Rus Hyp Lin Rea
32 jooby 330,810 59.0% 0 Ful Jav Nty Non Lin Rea
33 hyper 326,973 58.3% 0 Mcr Rus Rus Hyp Lin Rea
34 bottle 318,515 56.8% 0 Mcr Py Mei Non Lin Rea
35 fasthttp 302,845 54.0% 0 Plt Go Non Non Lin Rea
36 kami 279,076 49.8% 0 Mcr Go Non Non Lin Rea
37 jetty-servlet 269,874 48.1% 0 Plt Jav Jty Non Lin Rea
38 go 261,448 46.6% 0 Plt Go Non Non Lin Rea
39 weppy-py3 257,196 45.9% 0 Ful Py Mei Non Lin Rea
40 spark 256,662 45.8% 0 Mcr Jav Svt Jty Lin Rea
41 weppy 255,510 45.6% 0 Ful Py Mei Non Lin Rea
42 jetty 250,671 44.7% 0 Plt Jav Jty Non Lin Rea
43 gin 249,839 44.6% 0 Mcr Go Non Non Lin Rea
44 yesod 243,994 43.5% 0 Ful Hkl Wai Wrp Lin Rea
45 play2-scala 240,174 42.8% 0 Ful Sca Akk Non Lin Rea
46 aleph 234,767 41.9% 0 Mcr Clj Nty Non Lin Rea
47 beego 233,105 41.6% 0 Ful Go Non Non Lin Rea
48 falcore 229,208 40.9% 0 Mcr Go Non Non Lin Rea
49 grizzly-jersey 219,894 39.2% 0 Mcr Jav JAX Grz Lin Rea
50 finch 201,447 35.9% 0 Mcr Sca Nty Non Lin Rea
51 express 199,878 35.7% 0 Mcr JS Non Non Lin Rea
52 roda-sequel 193,679 34.6% 0 Mcr Rby Rac Pum Lin Rea
53 roda-sequel-postgres 190,315 34.0% 0 Mcr Rby Rac Pum Lin Rea
54 urweb 183,888 32.8% 0 Ful Ur Ur/ Non Lin Rea
55 activeweb-jackson 176,825 31.5% 0 Ful Jav Svt Non Lin Rea
56 pyramid-py2 172,666 30.8% 0 Ful Py Non Mei Lin Rea
57 phoenix 164,921 29.4% 0 Ful Eli Cow Non Lin Rea
58 pyramid 162,962 29.1% 0 Ful Py Non Mei Lin Rea
59 hexagon 160,371 28.6% 0 Mcr Kot Svt Non Lin Rea
60 servant 156,821 28.0% 0 Mcr Hkl Wai Wrp Lin Rea
61 tapestry 156,479 27.9% 0 Ful Jav Svt Res Lin Rea
62 aiohttp 154,018 27.5% 0 Mcr Py asy Gun Lin Rea
63 koa 152,925 27.3% 0 Mcr JS Non Non Lin Rea
64 undertow-jersey-hikaricp 145,262 25.9% 0 Plt Jav JAX Non Lin Rea
65 revenj 143,516 25.6% 0 Ful C# Non Non Lin Rea
66 bayou 136,675 24.4% 0 Plt Jav Bay Non Lin Rea
67 webgo 130,231 23.2% 0 Mcr Go Non Non Lin Rea
68 sinatra-postgres 118,093 21.1% 0 Mcr Rby Rac Pum Lin Rea
69 curacao 117,926 21.0% 3 Mcr Jav Svt Non Lin Rea
70 sinatra-sequel 117,757 21.0% 0 Mcr Rby Rac Pum Lin Rea
71 sinatra-sequel-postgres 117,258 20.9% 0 Mcr Rby Rac Pum Lin Rea
72 sinatra 116,280 20.7% 0 Mcr Rby Rac Pum Lin Rea
73 echo 114,610 20.4% 0 Mcr Go Non Non Lin Rea
74 play2-scala-slick 114,377 20.4% 0 Ful Sca Akk Non Lin Rea
75 restexpress 112,325 20.0% 0 Mcr Jav Nty Non Lin Rea
76 play2-scala-reactivemongo 109,050 19.5% 0 Ful Sca Akk Non Lin Rea
77 roda-sequel-torquebox-jruby 108,330 19.3% 0 Mcr Rby Rac Tor Lin Rea
78 akka-http 103,453 18.5% 0 Mcr Sca Akk Non Lin Rea
79 compojure 103,222 18.4% 0 Mcr Clj Svt Res Lin Rea
80 roda-sequel-postgres-torquebox-jruby 101,845 18.2% 0 Mcr Rby Rac Tor Lin Rea
81 octopus 101,460 18.1% 0 Ful Lua OpR ngx Lin Rea
82 cutelyst-nginx 98,480 17.6% 0 Ful C++ uWS ngx Lin Rea
83 dropwizard 98,464 17.6% 0 Ful Jav JAX Jty Lin Rea
84 flask 93,373 16.7% 0 Mcr Py Mei Non Lin Rea
85 redstone 93,084 16.6% 0 Mcr Dar Non Non Lin Rea
86 snap 93,005 16.6% 0 Mcr Hkl Non Non Lin Rea
87 turbogears 90,292 16.1% 0 Mcr Py Non Mei Lin Rea
88 api_hour 88,822 15.8% 18 Mcr Py asy Gun Lin Rea
89 django 87,427 15.6% 0 Ful Py Non Mei Lin Rea
90 evhttp-sharp 87,219 15.6% 0 Mcr C# Non Non Lin Rea
91 roda-sequel-passenger-mri 87,052 15.5% 0 Mcr Rby Rac Pas Lin Rea
92 roda-sequel-postgres-passenger-mri 87,019 15.5% 0 Mcr Rby Rac Pas Lin Rea
93 comsat-webactors-undertow 83,980 15.0% 0 Plt Jav Com Non Lin Rea
94 django-py3 83,390 14.9% 0 Ful Py Non Mei Lin Rea
95 goji 83,133 14.8% 0 Mcr Go Non Non Lin Rea
96 http4s 81,717 14.6% 0 Mcr Sca NIO bla Lin Rea
97 luminus 74,709 13.3% 0 Mcr Clj Rin Non Lin Rea
98 cutelyst 69,645 12.4% 0 Ful C++ cut Non Lin Rea
99 sinatra-sequel-passenger-mri 64,468 11.5% 0 Mcr Rby Rac Pas Lin Rea
100 sinatra-sequel-postgres-passenger-mri 64,462 11.5% 0 Mcr Rby Rac Pas Lin Rea
101 sinatra-passenger-mri 63,897 11.4% 0 Mcr Rby Rac Pas Lin Rea
102 sinatra-postgres-passenger-mri 63,839 11.4% 0 Mcr Rby Rac Pas Lin Rea
103 ringojs 62,824 11.2% 0 Plt JS Jty Non Lin Rea
104 jester 60,327 10.8% 0 Mcr Nim Non Non Lin Rea
105 wt 59,541 10.6% 0 Ful C++ Non Non Lin Rea
106 tornado 59,315 10.6% 0 Plt Py Non Tor Lin Rea
107 tornado-py3 55,029 9.8% 0 Plt Py Non Tor Lin Rea
108 http-kit 54,271 9.7% 0 Plt Clj Rin Non Lin Rea
109 activeweb 53,579 9.6% 0 Ful Jav Svt Non Lin Rea
110 php-php5 44,327 7.9% 0 Plt PHP Non ngx Lin Rea
111 web2py-optimized 42,960 7.7% 0 Ful Py Mei Non Lin Rea
112 php 42,308 7.5% 0 Plt PHP Non ngx Lin Rea
113 pedestal 42,045 7.5% 0 Mcr Clj Jty Non Lin Rea
114 grails 37,021 6.6% 0 Ful Grv Svt Non Lin Rea
115 sinatra-sequel-torquebox-jruby 35,547 6.3% 0 Mcr Rby Rac Tor Lin Rea
116 fat-free 34,839 6.2% 0 Ful PHP Non ngx Lin Rea
117 phalcon 34,439 6.1% 0 Ful PHP Non ngx Lin Rea
118 sinatra-sequel-postgres-torquebox-jruby 33,892 6.0% 0 Mcr Rby Rac Tor Lin Rea
119 roda-sequel-postgres-unicorn-mri 33,063 5.9% 0 Mcr Rby Rac Uni Lin Rea
120 roda-sequel-unicorn-mri 32,485 5.8% 0 Mcr Rby Rac Uni Lin Rea
121 sinatra-unicorn-mri 31,550 5.6% 0 Mcr Rby Rac Uni Lin Rea
122 sinatra-postgres-unicorn-mri 31,185 5.6% 0 Mcr Rby Rac Uni Lin Rea
123 sinatra-sequel-postgres-unicorn-mri 30,686 5.5% 0 Mcr Rby Rac Uni Lin Rea
124 sinatra-sequel-unicorn-mri 30,475 5.4% 0 Mcr Rby Rac Uni Lin Rea
125 comsat-servlet-undertow 29,396 5.2% 0 Plt Jav Svt Non Lin Rea
126 ringojs-convenient 26,078 4.7% 0 Mcr JS Rin Non Lin Rea
127 mojolicious 25,595 4.6% 0 Ful Prl Non Hyp Lin Rea
128 rouille 25,095 4.5% 0 Mcr Rus Rus rou Lin Rea
129 ninja-standalone 24,692 4.4% 0 Ful Jav Jty Non Lin Rea
130 spring 22,228 4.0% 0 Ful Jav tom Non Lin Rea
131 slim 21,589 3.9% 0 Mcr PHP Non ngx Lin Rea
132 web2py 20,005 3.6% 0 Ful Py Mei Non Lin Rea
133 tornado-postgresql-raw 19,760 3.5% 0 Plt Py Non Tor Lin Rea
134 revel 18,930 3.4% 0 Ful Go Non Non Lin Rea
135 kemal 12,845 2.3% 0 Ful Cry Non Non Lin Rea
136 web-simple 12,645 2.3% 0 Mcr Prl Plk Sta Lin Rea
137 kelp 12,265 2.2% 0 Ful Prl Plk Sta Lin Rea
138 kelp-mongodb 11,905 2.1% 0 Ful Prl Plk Sta Lin Rea
139 codeigniter 11,824 2.1% 0 Ful PHP Non ngx Lin Rea
140 vibed-ldc 11,813 2.1% 0 Plt D Non Non Lin Rea
141 dancer 11,611 2.1% 0 Ful Prl Plk Sta Lin Rea
142 spock 11,481 2.0% 0 Mcr Hkl Wai Wrp Lin Rea
143 hot 10,627 1.9% 0 Plt Grv Jty Jty Lin Rea
144 yii2 10,388 1.9% 0 Ful PHP Non ngx Lin Rea
145 slim-php5 9,640 1.7% 0 Mcr PHP Non ngx Lin Rea
146 play1 8,706 1.6% 8 Ful Jav Nty Non Lin Rea
147 vibed 8,415 1.5% 0 Mcr D Non Non Lin Rea
148 grape 8,110 1.4% 0 Mcr Rby Rac Pum Lin Rea
149 lumen 8,033 1.4% 0 Mcr PHP Non ngx Lin Rea
150 hhvm 7,317 1.3% 0 Plt PHP Non ngx Lin Rea
151 laravel 7,020 1.3% 0 Ful PHP Non ngx Lin Rea
152 grape-unicorn 7,000 1.2% 0 Mcr Rby Rac Uni Lin Rea
153 fuel 6,945 1.2% 0 Mcr PHP Non ngx Lin Rea
154 lithium 6,811 1.2% 0 Ful PHP Non ngx Lin Rea
155 padrino 6,701 1.2% 0 Mcr Rby Rac Pum Lin Rea
156 padrino-unicorn 6,624 1.2% 0 Mcr Rby Rac Uni Lin Rea
157 hapi 6,225 1.1% 0 Mcr JS Non Non Lin Rea
158 plack 5,153 0.9% 0 Mcr Prl Plk ngx Lin Rea
159 chicagoboss 5,060 0.9% 0 Ful Erl Cow Non Lin Rea
160 weppy-nginx-uwsgi 4,803 0.9% 0 Ful Py uWS ngx Lin Rea
161 bottle-nginx-uwsgi 4,704 0.8% 0 Mcr Py uWS ngx Lin Rea
162 flask-nginx-uwsgi 4,693 0.8% 0 Mcr Py Non ngx Lin Rea
163 zend 4,560 0.8% 0 Ful PHP Non ngx Lin Rea
164 cakephp 4,388 0.8% 0 Ful PHP Non ngx Lin Rea
165 rails-unicorn 4,126 0.7% 0 Ful Rby Rac Uni Lin Rea
166 rails 4,064 0.7% 0 Ful Rby Rac Pum Lin Rea
167 sailsjs 878 0.2% 0 Ful JS njs Non Lin Rea
168 klein 844 0.2% 0 Mcr Py Non Twi Lin Rea
169 cherrypy-py3 473 0.1% 0 Mcr Py Non Non Lin Rea
170 ffead-cpp 400 0.1% 0 Ful C++ ffe ffe Lin Rea
171 ffead-cpp-mysql 400 0.1% 0 Ful C++ ffe ffe Lin Rea
172 ffead-cpp-postgresql 400 0.1% 0 Ful C++ ffe ffe Lin Rea
173 cherrypy 305 0.1% 0 Mcr Py Non Non Lin Rea
174 ffead-cpp-nginx-mongo 17 0.0% 0 Ful C++ ffe ngx Lin Rea
175 ffead-cpp-nginx-mysql 17 0.0% 0 Ful C++ ffe ngx Lin Rea
176 ffead-cpp-nginx-postgresql 17 0.0% 0 Ful C++ ffe ngx Lin Rea
177 jawn Ful Jav Svt Utw Lin Rea
178 ktor Mcr Kot Nty Non Lin Rea
179 onion Plt C Non Non Lin Rea
180 officefloor Ful Jav off woo Lin Rea
181 silicon Mcr C++ Non mic Lin Rea
182 treefrog Ful C++ Non Non Lin Rea
183 treefrog-hybrid Ful C++ Non Non Lin Rea
184 treefrog-mongodb Ful C++ Non Non Lin Rea
185 treefrog-postgres Ful C++ Non Non Lin Rea
186 vapor Ful Swi Non Non Lin Rea

 

 

测试类型

每种测试类型都有其自己的要求和规格。请访问他们的部分以获取更多详细信息和完整要求。

JSON序列化:行使框架基础知识,包括保持活动支持,请求路由,请求标头解析,对象实例化,JSON序列化,响应标头生成和请求计数吞吐量。

单个数据库查询:行使框架的对象关系映射器(ORM),随机数生成器,数据库驱动程序和数据库连接池。

多个数据库查询:测试#2的一种变体,也使用World表。提取多行以更加显着地惩罚数据库驱动程序和连接池。在测试的最高每次查询查询数(20)下,该测试表明随着数据库活动的增加,所有框架都趋向于每秒零请求。

Fortunes:练习ORM,数据库连接,动态大小集合,排序,服务器端模板,XSS对策和字符编码。

数据库更新:测试#3的一种变体,它在运行UPDATE语句或类似语句时,测试对象的ORM持久性和数据库驱动程序的性能。该测试的精神是对可变数量的读写样式数据库操作进行练习。

纯文本:仅用于请求路由基础的练习,旨在演示特别是高性能平台的功能。请求将使用HTTP流水线发送。响应有效载荷仍然很小,这意味着要使测试环境的千兆以太网饱和,仍然需要良好的性能。

缓存:对来自数据库的信息进行平台或框架的内存中缓存。为了简化实施,要求与多数据库查询测试(测试#3)非常相似,但是使用单独的数据库表并且相当慷慨/宽容,允许应用每个平台或框架的最佳实践。

参考: 

 

 

转载地址:https://linuxstyle.blog.csdn.net/article/details/104758695 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Linux查看本机端口
下一篇:互联网大厂技术面试内幕@霞落满天

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月13日 20时19分29秒