Edited at

Webフレームワークのベンチマーク

Webフレームワークの選択には色々な角度からの比較が必要だ

学習難易度、将来性、技術者の集めやすさ、ライブラリの充実度、Web情報量、日本語コミュニティ、実行速度

その中でも、速度について調査した

https://www.techempower.com/benchmarks/#section=data-r17&hw=ph&test=query&d=1l

上記は有名なベンチマークである

もちろん、ベンチマークじゃ実際の数値はわからないが、参考には十分になる

ただし、このベンチはMySQL、PostgreSQLであり、NoSQLだと値は大きく変わるかもしれない


まずは有名フレームワーク

データは先頭より

順位、フレームワーク名、スコア、トップとの割合

MySQLがあるものは、なるべくそちらを選ぶようにした


akka(scala Microservice)

41
akka-http
18,329
40.1%

よく速いと言われているフレームワーク。やはり速い


servlet(java Platform)

45
servlet-mysql
17,994
39.4%

Javaも速い


revel(go Fullstack)

90
revel-raw
12,013
26.3%

フルスタックフレームワークでこの速度!!


node.js(JS Microservice)

125
nodejs
8,522
18.6%

スクリプト言語では健闘している


play2(scala Fullstack)

127
play2-scala-anorm-netty
8,401
18.4%


bottle(python Microservice)

141
bottle-raw
8,048
17.6%


play2(java Fullstack)

161
play2-java-jpa-hikaricp
6,925
15.1%


spring(java Fullstack)

170
spring
6,238
13.6%


phoenix(elixir Fullstack)

174
phoenix
5,987
13.1%


laravel(PHP Fullstack)

231
laravel
2,821
6.2%


rails(ruby Fullstack)

232
rails
2,795
6.1%


codeigniter(PHP Fullstack)

243
codeigniter
2,296
5.0%


Django(python3 Fullstack)

254
django-py3
1,659
3.6%


tornado(python Platform)

296
tornado-postgresql-raw

Did not complete

Pythonの非同期フレームワークだが、残念ながらこのベンチは達成できなかった

想定通り

スクリプト言語よりコンパイル言語が速い

同期より非同期が速い

フルスタックフレームワークよりマイクロサービスフレームワークの方が速い

という全体的な傾向が出た

Java、Scalaは速い

revel(go)はフルスタックのわりに高速


気になるフレームワーク


actix(rust Microservice)

1
actix-pg
45,719
100.0%


vertx(Java Platform)

3
vertx-postgres
41,920
91.7%


http4k(kotlin Microservice)

5
http4k
28,062
61.4%


fasthttp(go Platform)

9
fasthttp-postgresql
26,890
58.8%


swoole(PHP Platform)

24
swoole
22,289
48.8%


asp.NET core MVC(C#Fullstack)

38
aspcore-mw-ado-my
19,015
41.6%

PHPのswoolが速いと聞いていたが予想以上に速い

また、フルスタックながらC#の .NET MVC速い

が、トップに Rustのactixがきて

次点としてJavaのvertx

何個か気になったフレームワークあったので、今度調査します