2016年Web框架性能基准

TechEmpower Web Framework Benchmarks Round 13

目录 [−]

  1. 返回普通文本的性能
  2. 带JSON序列化的性能
  3. 单个数据库查询的性能
  4. 多个数据库查询的性能
  5. 带数据库更新的性能
  6. Fortunes测试套件的性能

TechEmpower最近发布了他们的第13轮的web框架的性能测试,得到了一些有价值的测试结果。

由于年初前一轮的测试遭遇到了硬件的瓶颈,微软 Azure 和 ServerCentral 分别提供了云主机和物理主机环境,所以第13轮的测试是在新的测试环境中进行的,所以你把这轮的测试结果和以前的测试进行比较的话可能不太合适。


ServerCentral

物理机环境,由 ServerCentral提供。 Dell R910 (4x 10-Core E7-4850 CPUs) 为应用服务器; Dell R420 (2x 4-Core E5-2406 CPUs) 为数据库服务器; 10G网络

Azure

云测试主机由 Microsoft Azure D3v2 实例提供; 10网络

这里所称的“框架”是一个广泛意义的框架,只一系列的web平台、微服务框架、全栈平台等,也欢迎开发者提供新的框架的测试代码,代码的编写指导可以参照文档:Test requirements

第十三轮的测试一共测试了134个框架,所有的测试代码都放在了github上,你可以查看这些测试代码。

测试提供了几种类型,比如简单JSON测试,普通文本测试、单数据库查询测试、多条数据库查询测试、数据更新测试、测试套件,所以测试的不仅仅web框架单纯的功能,还测试了一些框架加上mysql、postgresql读写的功能。

以下是在物理主机上的性能,更多的性能和细节可以浏览官方网站: Round 13

返回普通文本的性能

这个测试中web框架简单的返回“hello world”字符串,开启http pipelining功能。

FrameworkBest performance (higher is better)ClsLngPltFEAosIAErrors
libreactor3,730,467
100.0%
PltClibNonLinRea0
echo-prefork3,602,407
96.6%
McrGoNonNonLinRea0
ulib3,184,526
85.4%
PltC++NonULiLinRea0
colossus3,054,880
81.9%
McrScaAkkNonLinRea0
undertow2,914,627
78.1%
PltJavUtwNonLinRea0
fasthttp-mysql-prefo2,850,705
76.4%
PltGoNonNonLinRea0
netty2,795,049
74.9%
PltJavNtyNonLinRea0
cpoll_cppsp2,306,470
61.8%
PltC++NonNonLinRea0
lwan1,925,941
51.6%
PltCLwaNonLinRea0
aspnetcore-linux1,822,366
48.9%
McrC#NetNonLinRea1,272
h2o1,549,273
41.5%
PltCNonNonLinRea0
s-server1,535,029
41.1%
PltScas-sNonLinRea0
revenj.jvm1,195,781
32.1%
FulJavSvtResLinRea503
servlet1,156,604
31.0%
PltJavSvtResLinRea24
gin1,044,907
28.0%
McrGoNonNonLinRea0
ngx_mruby993,518
26.6%
McrRbyNonngxLinRea3,315
wheezy.web975,225
26.1%
McrPyNonMeiLinRea0
silicon-lwan-mysql921,649
24.7%
McrC++NonLwaLinRea0
wheezy.web-py3901,750
24.2%
McrPyNonMeiLinRea0
kami898,999
24.1%
McrGoNonNonLinRea0
gemini891,473
23.9%
FulJavSvtResLinRea40
falcon862,200
23.1%
McrPyNonMeiLinRea0
openresty836,746
22.4%
PltLuaOpRngxLinRea2,150
haywire788,680
21.1%
PltChayNonLinRea2,989
grizzly776,464
20.8%
McrJavSvtNonLinRea0
beego768,541
20.6%
McrGoNonNonLinRea0
falcon-py3724,863
19.4%
McrPyNonMeiLinRea0
duda i/o670,474
18.0%
PltCdudMonLinRea1,054
aspnetcore-mvc-linux652,487
17.5%
FulC#NetNonLinRea210
treefrog-mongo644,319
17.3%
FulC++NonNonLinRea542
treefrog-postgres636,832
17.1%
FulC++NonNonLinRea470
treefrog632,806
17.0%
FulC++NonNonLinRea462
aleph546,168
14.6%
McrCljNtyNonLinRea0
jooby520,854
14.0%
FulJavNtyNonLinRea0
revenj514,169
13.8%
FulC#NonNonLinRea0
lapis510,997
13.7%
FulLuaOpRngxLinRea597
restexpress505,856
13.6%
McrJavNtyNonLinRea743
bottle492,064
13.2%
McrPyMeiNonLinRea0
finagle478,582
12.8%
McrScaNtyNonLinRea725
fintrospect471,480
12.6%
McrScaNtyNonLinRea2,236
nodejs467,246
12.5%
PltJSnjsNonLinRea774
finatra442,608
11.9%
McrScaNtyNonLinRea3,999
echo-std442,110
11.9%
McrGoNonNonLinRea0
falcore440,076
11.8%
McrGoNonNonLinRea0
jlhttp408,385
10.9%
PltJavJLHNonLinRea478
bottle-py3408,379
10.9%
McrPyMeiNonLinRea0
jetty-servlet397,188
10.6%
PltJavJtyNonLinRea9,632
finch392,352
10.5%
McrScaNtyNonLinRea557
silicon-epoll-mysql383,699
10.3%
McrC++NonmicLinRea250
pyramid-py3343,757
9.2%
FulPyNonMeiLinRea0
wicket335,404
9.0%
FulJavSvtResLinRea0
phoenix311,159
8.3%
McrEliCowNonLinRea0
pyramid-py2308,203
8.3%
FulPyNonMeiLinRea0
ur/web295,922
7.9%
FulUrUr/NonLinRea0
spray290,108
7.8%
McrScaAkkNonLinRea0
cutelyst-thread258,955
6.9%
FulC++QtNonLinRea3,874
jawn250,654
6.7%
FulJavSvtUtwLinRea0
iron243,224
6.5%
McrrusRushypLinRea109
servant235,613
6.3%
McrHklWaiWrpLinRea0
falcon-pypy228,810
6.1%
McrPyNonTorLinRea0
yesod221,026
5.9%
FulHklWaiWrpLinRea0
treefrog-hybrid217,349
5.8%
FulC++NonNonLinRea0
express213,982
5.7%
McrJSNonNonLinRea0
snap200,843
5.4%
McrHklNonNonLinRea0
play2-scala195,730
5.2%
FulScaNtyNonLinRea0
akka-http194,483
5.2%
McrScaAkkNonLinRea280
yesod-postgres177,389
4.8%
FulHklWaiWrpLinRea0
undertow-jersey-c3p0175,334
4.7%
PltJavJAXNonLinRea0
start171,445
4.6%
McrDarNonngxLinRea0
play2-scala-reactive167,758
4.5%
FulScaNtyNonLinRea871
undertow-jersey-hika165,549
4.4%
PltJavJAXNonLinRea0
silicon-tpc-mysql160,396
4.3%
McrC++NonmicLinRea44,915
play-scala-anorm159,556
4.3%
FulScaNtyNonLinRea804
stream155,232
4.2%
McrDarNonngxLinRea0
play2-scala-anorm-li153,102
4.1%
FulScaNtyNonLinRea4,055
compojure146,492
3.9%
McrCljSvtResLinRea0
curacao139,407
3.7%
McrJavSvtNonLinRea0
play2-java136,714
3.7%
FulJavNtyNonLinRea465
tapestry135,255
3.6%
FulJavSvtResLinRea27
spring131,533
3.5%
FulJavSvtTomLinRea0
wt127,575
3.4%
FulC++NonNonLinRea1,173
comsat126,434
3.4%
PltJavSvtNonLinRea0
flask-py3124,800
3.3%
McrPyMeiNonLinRea0
activeweb123,869
3.3%
FulJavSvtNonLinRea0
http4s121,950
3.3%
McrScaNIOblaLinRea782
api-hour+aiohttp.web115,954
3.1%
McrPyAPIGunLinRea0
poco106,961
2.9%
PltC++NonNonLinRea365,853
comsat-servlet-under104,856
2.8%
PltJavSvtNonLinRea0
cutelyst-pf103,241
2.8%
FulC++QtNonLinRea389
redstone-postgresql99,515
2.7%
McrDarNonNonLinRea0
dropwizard98,224
2.6%
FulJavJAXNonLinRea0
hapi94,123
2.5%
McrJSNonNonLinRea479
bottle-pypy92,682
2.5%
McrPyTorNonLinRea0
turbogears92,298
2.5%
McrPyNonMeiLinRea0
evhttp-sharp87,478
2.3%
McrC#NonNonLinRea0
django87,425
2.3%
FulPyNonMeiLinRea0
django-py385,207
2.3%
FulPyNonMeiLinRea0
cutelyst-uwsgi-nginx82,891
2.2%
FulC++QtngxLinRea0
sinatra-sequel-puma-81,245
2.2%
McrRbyRacPumLinRea0
luminus79,008
2.1%
McrCljRinNonLinRea1,491
goji72,461
1.9%
McrGoNonNonLinRea0
wildfly-ee767,037
1.8%
FulJavSvtWilLinRea0
comsat66,360
1.8%
PltJavComNonLinRea0
ringojs60,624
1.6%
PltJSJtyNonLinRea672
http-kit58,807
1.6%
PltCljRinNonLinRea579
hyper57,902
1.6%
McrrusRushypLinRea338
tornado-py355,435
1.5%
PltPyNonTorLinRea0
tornado54,710
1.5%
PltPyNonTorLinRea0
php45,616
1.2%
PltPHPNonngxLinRea0
web2py-optimized44,879
1.2%
FulPyMeiNonLinRea0
php544,445
1.2%
PltPHPNonngxLinRea0
comsat-actors-undert40,536
1.1%
PltJavComNonLinRea0
nickel38,930
1.0%
McrrusRushypLinRea0
phpixie37,659
1.0%
FulPHPNonngxLinRea0
fat-free35,702
1.0%
FulPHPNonngxLinRea0
php-phalcon35,573
1.0%
FulPHPNonngxLinRea0
ninja-standalone28,680
0.8%
FulJavJtyNonLinRea0
grails28,361
0.8%
FulGrvSvtNonLinRea0
mojolicious23,894
0.6%
FulPrlNonHypLinRea96
silex22,778
0.6%
McrPHPNonngxLinRea0
web2py20,236
0.5%
FulPyMeiNonLinRea0
scruffy18,806
0.5%
McrScaUtwNonLinRea1,397
ringojs-conv18,612
0.5%
McrJSRinNonLinRea1,544
pedestal18,268
0.5%
McrCljUtwNonLinRea866
revel16,285
0.4%
FulGoNonNonLinRea0
kemal (postgresql)16,282
0.4%
FulCryNonNonLinRea0
sinatra-unicorn13,872
0.4%
McrRbyRacUniLinRea3,658
spock13,171
0.4%
McrHklWaiWrpLinRea0
sinatra-puma13,109
0.4%
McrRbyRacPumLinRea0
flask-pypy12,503
0.3%
McrPyNonTorLinRea0
grizzly-jersey12,282
0.3%
McrJavJAXNonLinRea0
rapidoid11,126
0.3%
PltJavNonNonLinRea0
kelp10,797
0.3%
FulPrlPlkStaLinRea0
kelp10,564
0.3%
FulPrlPlkStaLinRea0
cygnite9,301
0.2%
FulPHPNonngxLinRea989
puma-padrino8,267
0.2%
McrRbyRacPumLinRea0
clancatsframework8,110
0.2%
FulPHPNonngxLinRea748
unicorn-padrino8,083
0.2%
McrRbyRacUniLinRea0
lumen7,853
0.2%
McrPHPNonngxLinRea11,573
unicorn-grape7,606
0.2%
McrRbyRacUniLinRea539
puma-mri-grape7,459
0.2%
McrRbyRacPumLinRea0
hhvm7,319
0.2%
PltPHPNonngxLinRea24
laravel6,249
0.2%
FulPHPNonngxLinRea0
laravel_hhvm5,510
0.1%
FulPHPNonngxLinRea0
spark5,196
0.1%
McrJavSvtResLinRea0
rails-unicorn3,907
0.1%
FulRbyRacUniLinRea43,284
laravel3,835
0.1%
FulPHPNonngxLinRea136,491
puma-mri-rails3,526
0.1%
FulRbyRacPumLinRea0
limonade2,820
0.1%
McrPHPNonngxLinRea729
aspnet-mvc-mono2,453
0.1%
PltC#ASPngxLinRea489
aspnet-mvc-mono2,209
0.1%
PltC#ASPngxLinRea247
phreeze2,101
0.1%
McrPHPNonngxLinRea585
nancy-mono1,992
0.1%
McrC#.NEngxLinRea921
servicestack-nginx-d1,879
0.1%
FulC#NonngxLinRea955
webware783
0.0%
McrPyNonNonLinRea37
twisted klein746
0.0%
McrPyNonTwiLinRea12
sails.js508
0.0%
FulJSnjsNonLinRea0
cherrypy-py3465
0.0%
McrPyNonNonLinRea281
thin-rails438
0.0%
FulRbyRacThiLinRea0
koa425
0.0%
McrJSNonNonLinRea2,402
sinatra-thin305
0.0%
McrRbyRacThiLinRea3,955
cherrypy292
0.0%
McrPyNonNonLinRea252
thin-grape291
0.0%
McrRbyRacThiLinRea5,724
permeagility284
0.0%
PltJavPerNonLinRea5,893
thin-padrino245
0.0%
McrRbyRacThiLinRea2,843
bottle-nginx-uwsgi0
0.0%
McrPyuWSngxLinRea93,446
ffead-cpp0
0.0%
McrC++NonNonLinRea3,930,147
flask-nginx-uwsgi0
0.0%
McrPyNonngxLinRea88,377
hexagon0
0.0%
McrKotNtyNonLinRea38
beyondjDid not completeFulJavSvtNonLinRea
cakephpDid not completeFulPHPNonngxLinRea
chicagobossDid not completeFulErlCowNonLinRea
kemal (redis)Did not completeFulCryNonNonLinRea
crystalDid not completePltCryNonNonLinRea
echoDid not completeMcrGoNonNonLinRea
vertxDid not completePltJavNtyNonLinRea
servicestackDid not completeFulC#NonXSPLinRea
vertx-webDid not completeMcrJavvtxNonLinRea
vibe.dDid not completeMcrDNonNonLinRea
vibe.d-ldcDid not completePltDNonNonLinRea

带JSON序列化的性能

这个测试除了web功能外,每次请求还会序列化一个对象,序列化后的数据为“{"message":"Hello, World!"}”。

FrameworkBest performance (higher is better)ClsLngPltFEAosIAErrors
s-server556,192
100.0%
PltScas-sNonLinRea0
revenj.jvm555,922
100.0%
FulJavSvtResLinRea0
h2o544,066
97.8%
PltCNonNonLinRea0
duda i/o522,892
94.0%
PltCdudMonLinRea0
colossus505,321
90.9%
McrScaAkkNonLinRea0
silicon-lwan-mysql502,467
90.3%
McrC++NonLwaLinRea0
gemini492,544
88.6%
FulJavSvtResLinRea0
netty487,126
87.6%
PltJavNtyNonLinRea0
cpoll_cppsp485,355
87.3%
PltC++NonNonLinRea0
lwan477,393
85.8%
PltCLwaNonLinRea0
libreactor476,558
85.7%
PltClibNonLinRea0
silicon-epoll-mysql467,067
84.0%
McrC++NonmicLinRea0
ulib465,651
83.7%
PltC++NonULiLinRea0
echo-prefork463,413
83.3%
McrGoNonNonLinRea0
rapidoid443,720
79.8%
PltJavNonNonLinRea0
openresty441,958
79.5%
PltLuaOpRngxLinRea0
falcon420,820
75.7%
McrPyNonMeiLinRea0
undertow416,380
74.9%
PltJavUtwNonLinRea0
falcon-py3413,205
74.3%
McrPyNonMeiLinRea0
jooby391,043
70.3%
FulJavNtyNonLinRea0
wheezy.web387,402
69.7%
McrPyNonMeiLinRea0
nickel386,855
69.6%
McrrusRushypLinRea0
wheezy.web-py3378,857
68.1%
McrPyNonMeiLinRea0
ngx_mruby377,344
67.8%
McrRbyNonngxLinRea1
servlet375,472
67.5%
PltJavSvtResLinRea0
finatra372,338
66.9%
McrScaNtyNonLinRea0
iron368,685
66.3%
McrrusRushypLinRea0
bottle339,180
61.0%
McrPyMeiNonLinRea0
grizzly338,599
60.9%
McrJavSvtNonLinRea0
jlhttp336,212
60.4%
PltJavJLHNonLinRea0
finagle335,698
60.4%
McrScaNtyNonLinRea0
wicket328,387
59.0%
FulJavSvtResLinRea0
fintrospect320,366
57.6%
McrScaNtyNonLinRea0
lapis308,128
55.4%
FulLuaOpRngxLinRea0
nodejs304,372
54.7%
PltJSnjsNonLinRea0
finch298,505
53.7%
McrScaNtyNonLinRea0
bottle-py3292,545
52.6%
McrPyMeiNonLinRea0
spark278,400
50.1%
McrJavSvtResLinRea0
fasthttp-mysql-prefo277,985
50.0%
PltGoNonNonLinRea0
kami277,454
49.9%
McrGoNonNonLinRea0
cutelyst-thread274,740
49.4%
FulC++QtNonLinRea0
treefrog272,526
49.0%
FulC++NonNonLinRea0
treefrog-postgres271,388
48.8%
FulC++NonNonLinRea0
aspnetcore-linux264,649
47.6%
McrC#NetNonLinRea0
jetty-servlet261,972
47.1%
PltJavJtyNonLinRea0
gin259,637
46.7%
McrGoNonNonLinRea0
echo-std257,310
46.3%
McrGoNonNonLinRea0
treefrog-mongo245,295
44.1%
FulC++NonNonLinRea0
falcore240,353
43.2%
McrGoNonNonLinRea0
aleph239,349
43.0%
McrCljNtyNonLinRea0
beego234,330
42.1%
McrGoNonNonLinRea0
grizzly-jersey223,663
40.2%
McrJavJAXNonLinRea0
yesod210,308
37.8%
FulHklWaiWrpLinRea0
servant192,391
34.6%
McrHklWaiWrpLinRea0
falcon-pypy188,730
33.9%
McrPyNonTorLinRea0
jawn187,453
33.7%
FulJavSvtUtwLinRea0
express186,548
33.5%
McrJSNonNonLinRea0
aspnetcore-mvc-linux185,435
33.3%
FulC#NetNonLinRea0
ur/web183,633
33.0%
FulUrUr/NonLinRea0
yesod-postgres172,901
31.1%
FulHklWaiWrpLinRea0
activeweb171,607
30.9%
FulJavSvtNonLinRea0
silicon-tpc-mysql169,069
30.4%
McrC++NonmicLinRea0
pyramid-py3167,915
30.2%
FulPyNonMeiLinRea0
start163,521
29.4%
McrDarNonngxLinRea0
undertow-jersey-hika152,381
27.4%
PltJavJAXNonLinRea0
undertow-jersey-c3p0145,315
26.1%
PltJavJAXNonLinRea0
stream144,373
26.0%
McrDarNonngxLinRea0
webgo141,132
25.4%
McrGoNonNonLinRea0
pyramid-py2139,978
25.2%
FulPyNonMeiLinRea0
tapestry137,726
24.8%
FulJavSvtResLinRea0
play2-scala-reactive137,540
24.7%
FulScaNtyNonLinRea0
play2-java137,504
24.7%
FulJavNtyNonLinRea0
spray137,146
24.7%
McrScaAkkNonLinRea0
koa136,573
24.6%
McrJSNonNonLinRea0
curacao120,851
21.7%
McrJavSvtNonLinRea1
play-scala-anorm118,895
21.4%
FulScaNtyNonLinRea0
http4s116,048
20.9%
McrScaNIOblaLinRea0
restexpress114,787
20.6%
McrJavNtyNonLinRea0
play2-scala-anorm-li108,449
19.5%
FulScaNtyNonLinRea0
phoenix107,966
19.4%
McrEliCowNonLinRea0
flask-py3107,098
19.3%
McrPyMeiNonLinRea0
akka-http106,054
19.1%
McrScaAkkNonLinRea0
compojure104,622
18.8%
McrCljSvtResLinRea0
revenj97,190
17.5%
FulC#NonNonLinRea0
evhttp-sharp96,501
17.4%
McrC#NonNonLinRea0
snap92,467
16.6%
McrHklNonNonLinRea0
api-hour+aiohttp.web90,464
16.3%
McrPyAPIGunLinRea0
dropwizard89,702
16.1%
FulJavJAXNonLinRea0
turbogears88,898
16.0%
McrPyNonMeiLinRea0
django87,706
15.8%
FulPyNonMeiLinRea0
django-py383,865
15.1%
FulPyNonMeiLinRea0
comsat83,630
15.0%
PltJavComNonLinRea0
cutelyst-pf82,818
14.9%
FulC++QtNonLinRea0
play2-scala80,575
14.5%
FulScaNtyNonLinRea0
goji79,780
14.3%
McrGoNonNonLinRea0
wt78,792
14.2%
FulC++NonNonLinRea0
sinatra-sequel-puma-76,271
13.7%
McrRbyRacPumLinRea0
luminus74,828
13.5%
McrCljRinNonLinRea0
redstone-postgresql74,365
13.4%
McrDarNonNonLinRea0
bottle-pypy68,370
12.3%
McrPyTorNonLinRea0
comsat-servlet-under60,898
10.9%
PltJavSvtNonLinRea0
jester60,302
10.8%
McrNimNonngxLinRea0
http-kit55,603
10.0%
PltCljRinNonLinRea0
activeweb52,656
9.5%
FulJavSvtNonLinRea0
ringojs52,135
9.4%
PltJSJtyNonLinRea0
comsat-actors-undert48,999
8.8%
PltJavComNonLinRea0
tornado48,316
8.7%
PltPyNonTorLinRea0
tornado-py345,698
8.2%
PltPyNonTorLinRea0
treefrog-hybrid44,713
8.0%
FulC++NonNonLinRea0
php543,570
7.8%
PltPHPNonngxLinRea0
php42,678
7.7%
PltPHPNonngxLinRea0
web2py-optimized42,605
7.7%
FulPyMeiNonLinRea0
cutelyst-uwsgi-nginx42,467
7.6%
FulC++QtngxLinRea0
wildfly-ee742,321
7.6%
FulJavSvtWilLinRea0
yaf41,451
7.5%
FulPHPNonngxLinRea0
php-phalcon-micro39,115
7.0%
McrPHPNonngxLinRea0
phpixie36,531
6.6%
FulPHPNonngxLinRea0
php-phalcon36,106
6.5%
FulPHPNonngxLinRea0
grails36,086
6.5%
FulGrvSvtNonLinRea0
fat-free34,783
6.3%
FulPHPNonngxLinRea0
comsat32,011
5.8%
PltJavSvtNonLinRea0
ninja-standalone30,319
5.5%
FulJavJtyNonLinRea0
scruffy29,311
5.3%
McrScaUtwNonLinRea0
mojolicious25,937
4.7%
FulPrlNonHypLinRea0
ringojs-conv25,716
4.6%
McrJSRinNonLinRea0
slim24,218
4.4%
McrPHPNonngxLinRea0
php-kohana24,030
4.3%
FulPHPNonngxLinRea0
silex22,227
4.0%
McrPHPNonngxLinRea0
spring22,013
4.0%
FulJavSvtTomLinRea0
web2py20,112
3.6%
FulPyMeiNonLinRea0
silex19,820
3.6%
McrPHPNonngxLinRea0
flask-pypy17,782
3.2%
McrPyNonTorLinRea0
silex-orm17,509
3.1%
McrPHPNonngxLinRea0
hexagon17,120
3.1%
McrKotNtyNonLinRea0
revel16,358
2.9%
FulGoNonNonLinRea0
pedestal15,975
2.9%
McrCljUtwNonLinRea0
spock15,381
2.8%
McrHklWaiWrpLinRea0
web-simple13,118
2.4%
McrPrlPlkStaLinRea0
kelp13,113
2.4%
FulPrlPlkStaLinRea0
kelp12,706
2.3%
FulPrlPlkStaLinRea0
dancer12,032
2.2%
FulPrlPlkStaLinRea0
kemal (postgresql)11,644
2.1%
FulCryNonNonLinRea0
sinatra-unicorn11,286
2.0%
McrRbyRacUniLinRea0
zendframework111,086
2.0%
FulPHPNonngxLinRea0
lithium10,531
1.9%
FulPHPNonngxLinRea0
codeigniter10,200
1.8%
FulPHPNonngxLinRea0
sinatra-puma9,997
1.8%
McrRbyRacPumLinRea0
yii29,593
1.7%
FulPHPNonngxLinRea0
slim-php59,543
1.7%
McrPHPNonngxLinRea0
cygnite9,281
1.7%
FulPHPNonngxLinRea0
play19,272
1.7%
FulJavNtyNonLinRea15
lumen8,484
1.5%
McrPHPNonngxLinRea0
puma-mri-grape8,103
1.5%
McrRbyRacPumLinRea0
clancatsframework7,797
1.4%
FulPHPNonngxLinRea0
hhvm7,428
1.3%
PltPHPNonngxLinRea0
unicorn-grape7,198
1.3%
McrRbyRacUniLinRea0
laravel7,171
1.3%
FulPHPNonngxLinRea0
fuel6,945
1.2%
McrPHPNonngxLinRea0
yii2-hhvm6,929
1.2%
FulPHPNonngxLinRea0
unicorn-padrino6,856
1.2%
McrRbyRacUniLinRea0
puma-padrino6,806
1.2%
McrRbyRacPumLinRea0
aspnet-svcstk-mono6,307
1.1%
FulC#ASPngxLinRea1
aspnet-mvc-mono6,276
1.1%
PltC#ASPngxLinRea0
hapi6,249
1.1%
McrJSNonNonLinRea0
symfony2-hhvm5,790
1.0%
FulPHPNonngxLinRea0
laravel_hhvm5,766
1.0%
FulPHPNonngxLinRea0
servicestack-nginx-d5,707
1.0%
FulC#NonngxLinRea0
aspnet-jsonnet-mono5,495
1.0%
FulC#ASPngxLinRea0
plack5,225
0.9%
McrPrlStangxLinRea0
codeigniter_hhvm5,223
0.9%
FulPHPNonngxLinRea0
zend5,014
0.9%
FulPHPNonngxLinRea0
nancy-mono4,653
0.8%
McrC#.NEngxLinRea0
aspnet-mvc-mono4,330
0.8%
PltC#ASPngxLinRea0
rails-unicorn4,140
0.7%
FulRbyRacUniLinRea0
laravel4,115
0.7%
FulPHPNonngxLinRea0
puma-mri-rails4,108
0.7%
FulRbyRacPumLinRea0
symfony23,315
0.6%
FulPHPNonngxLinRea0
limonade2,577
0.5%
McrPHPNonngxLinRea0
slim_hhvm2,261
0.4%
McrPHPNonngxLinRea0
sinatra-thin1,406
0.3%
McrRbyRacThiLinRea0
phreeze1,115
0.2%
McrPHPNonngxLinRea0
thin-grape1,041
0.2%
McrRbyRacThiLinRea0
racket-ws869
0.2%
FulRacNonNonLinRea0
thin-padrino818
0.1%
McrRbyRacThiLinRea0
twisted klein790
0.1%
McrPyNonTwiLinRea0
webware767
0.1%
McrPyNonNonLinRea0
sails.js671
0.1%
FulJSnjsNonLinRea0
cherrypy-py3462
0.1%
McrPyNonNonLinRea0
thin-rails460
0.1%
FulRbyRacThiLinRea0
cherrypy302
0.1%
McrPyNonNonLinRea0
ffead-cpp193
0.0%
McrC++NonNonLinRea0
bottle-nginx-uwsgi0
0.0%
McrPyuWSngxLinRea87,288
flask-nginx-uwsgi0
0.0%
McrPyNonngxLinRea95,562
onion0
0.0%
PltCNonNonLinRea0
beyondjDid not completeFulJavSvtNonLinRea
cakephpDid not completeFulPHPNonngxLinRea
chicagobossDid not completeFulErlCowNonLinRea
kemal (redis)Did not completeFulCryNonNonLinRea
crystalDid not completePltCryNonNonLinRea
permeagilityDid not completePltJavPerNonLinRea
echoDid not completeMcrGoNonNonLinRea
vertxDid not completePltJavNtyNonLinRea
servicestackDid not completeFulC#NonXSPLinRea
vertx-webDid not completeMcrJavvtxNonLinRea
vibe.dDid not completeMcrDNonNonLinRea
vibe.d-ldcDid not completePltDNonNonLinRea

单个数据库查询的性能

这个测试会从数据库(mysql或者postgresql)中读取一行数据,并且返回序列化后的数据如“{"id":3217,"randomNumber":2149}”格式。

FrameworkBest performance (higher is better)ClsLngPltFEAosDBDosOrmIAErrors
ulib-mongodb193,667
100.0%
PltC++NonULiLinMoLinMcrRea0
ulib-postgres171,989
88.8%
PltC++NonULiLinPgLinMcrRea0
fasthttp-postgresql-170,848
88.2%
PltGoNonNonLinPgLinRawRea0
cpoll_cppsp-postgres163,535
84.4%
PltC++NonNonLinPgLinRawRea0
h2o160,129
82.7%
PltCNonNonLinPgLinRawRea0
ulib-mysql159,304
82.3%
PltC++NonULiLinMyLinMcrRea0
cpoll_cppsp-postgres158,105
81.6%
PltC++NonNonLinPgLinRawRea0
fasthttp156,725
80.9%
PltGoNonNonLinMyLinRawRea0
cpoll_cppsp-raw155,443
80.3%
PltC++NonNonLinMyLinRawRea0
urweb-postgres155,345
80.2%
FulUrUr/NonLinPgLinMcrRea0
jooby149,492
77.2%
FulJavNtyNonLinNonLinRawRea220
revenj.jvm148,232
76.5%
FulJavSvtResLinPgLinFulRea0
nodejs131,904
68.1%
PltJSnjsNonLinMyLinRawRea0
kami126,899
65.5%
McrGoNonNonLinMyLinRawRea0
gemini-mysql126,365
65.2%
FulJavSvtResLinMyLinMcrRea0
openresty124,966
64.5%
PltLuaOpRngxLinMyLinRawRea0
echo-prefork121,553
62.8%
McrGoNonNonLinPgLinRawRea0
servlet-postgres-raw120,028
62.0%
PltJavSvtResLinPgLinRawRea0
servlet-raw115,859
59.8%
PltJavSvtResLinMyLinRawRea0
nodejs-mongodb-raw110,002
56.8%
PltJSnjsNonLinMoLinRawRea0
cutelyst-pf-pg-raw100,205
51.7%
PltC++QtNonLinPgLinRawRea0
urweb-mysql97,775
50.5%
FulUrUr/NonLinMyLinMcrRea0
start94,367
48.7%
McrDarNonngxLinMoLinRawRea0
cutelyst-thread-pg-r93,873
48.5%
PltC++QtNonLinPgLinRawRea0
stream87,793
45.3%
McrDarNonngxLinMoLinRawRea0
cutelyst-pf-mysql-ra85,214
44.0%
PltC++QtNonLinMyLinRawRea0
cutelyst-thread-mysq83,820
43.3%
PltC++QtNonLinMyLinRawRea0
beego80,480
41.6%
McrGoNonNonLinMyLinMcrRea0
bottle-mysql-raw80,347
41.5%
McrPyMeiNonLinMyLinRawRea0
grizzly-jersey79,270
40.9%
McrJavJAXNonLinMyLinFulRea0
silicon-lwan-mysql76,338
39.4%
McrC++NonLwaLinMyLinFulRea0
silicon-tpc-mysql76,279
39.4%
McrC++NonmicLinMyLinFulRea0
undertow75,188
38.8%
PltJavUtwNonLinMyLinRawRea0
ngx_mruby74,845
38.6%
McrRbyNonngxLinMyLinRawRea85
undertow-jersey-hika74,672
38.6%
PltJavJAXNonLinMyLinFulRea0
undertow74,562
38.5%
PltJavUtwNonLinPgLinRawRea0
echo-std73,791
38.1%
McrGoNonNonLinPgLinRawRea0
falcore73,773
38.1%
McrGoNonNonLinMyLinRawRea0
lapis73,531
38.0%
FulLuaOpRngxLinPgLinFulRea0
gin73,453
37.9%
McrGoNonNonLinMyLinRawRea0
go72,577
37.5%
PltGoNonNonLinPgLinRawRea0
goji71,781
37.1%
McrGoNonNonLinMyLinRawRea0
wt71,279
36.8%
FulC++NonNonLinMyLinFulRea0
fasthttp-mysql-prefo70,832
36.6%
PltGoNonNonLinMyLinRawRea0
wt-postgres69,739
36.0%
FulC++NonNonLinPgLin