Skip to content

Commit 02d2988

Browse files
committed
update reasult
1 parent c5c6e6a commit 02d2988

File tree

1 file changed

+46
-43
lines changed

1 file changed

+46
-43
lines changed

README.md

Lines changed: 46 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
# Which is the fastest?
22

3-
Measuring response times for each framework (middleware).
3+
Measuring response times (routing times) for each framework (middleware).
44
Each framework has to have two features; routing and parsing path parameters.
55

66
## Result
77

88
<!-- Result from here -->
9-
Last update: 2017-10-04
9+
Last update: 2017-10-28
1010
```
1111
OS: Darwin (version: 17.0.0, arch: x86_64)
1212
CPU Cores: 8
@@ -17,69 +17,72 @@ CPU Cores: 8
1717
1. [router_cr](https://github.com/tbrand/router.cr) (crystal)
1818
2. [raze](https://github.com/samueleaton/raze) (crystal)
1919
3. [japronto](https://github.com/squeaky-pl/japronto) (python)
20-
4. [fasthttprouter](https://github.com/buaazp/fasthttprouter) (go)
21-
5. [iron](https://github.com/iron/iron) (rust)
22-
6. [nickel](https://github.com/nickel-org/nickel.rs) (rust)
20+
4. [nickel](https://github.com/nickel-org/nickel.rs) (rust)
21+
5. [fasthttprouter](https://github.com/buaazp/fasthttprouter) (go)
22+
6. [iron](https://github.com/iron/iron) (rust)
2323
7. [rocket](https://github.com/SergioBenitez/Rocket) (rust)
2424
8. [kemal](https://github.com/kemalcr/kemal) (crystal)
25-
9. [echo](https://github.com/labstack/echo) (go)
25+
9. [iris](https://github.com/kataras/iris) (go)
2626
10. [gorilla_mux](https://github.com/gorilla/mux) (go)
27-
11. [iris](https://github.com/kataras/iris) (go)
27+
11. [echo](https://github.com/labstack/echo) (go)
2828
12. [aspnetcore](https://github.com/aspnet/Home) (csharp)
2929
13. [plug](https://github.com/elixir-lang/plug) (elixir)
3030
14. [phoenix](https://github.com/phoenixframework/phoenix) (elixir)
3131
15. [vapor](https://github.com/vapor/vapor) (swift)
32-
16. [perfect](https://github.com/PerfectlySoft/Perfect) (swift)
33-
17. [kitura](https://github.com/IBM-Swift/Kitura) (swift)
34-
18. [sanic](https://github.com/channelcat/sanic) (python)
35-
19. [akkahttp](https://github.com/akka/akka-http) (scala)
36-
20. [clusterexpress](https://github.com/LearnBoost/cluster) (node)
32+
16. [sanic](https://github.com/channelcat/sanic) (python)
33+
17. [perfect](https://github.com/PerfectlySoft/Perfect) (swift)
34+
18. [kitura](https://github.com/IBM-Swift/Kitura) (swift)
35+
19. [clusterexpress](https://github.com/LearnBoost/cluster) (node)
36+
20. [akkahttp](https://github.com/akka/akka-http) (scala)
3737
21. [express](https://github.com/expressjs/express) (node)
3838
22. [roda](https://github.com/jeremyevans/roda) (ruby)
39-
23. [sinatra](https://github.com/sinatra/sinatra) (ruby)
40-
24. [rails](https://github.com/rails/rails) (ruby)
39+
23. [criollo](https://github.com/thecatalinstan/criollo) (objc)
40+
24. [sinatra](https://github.com/sinatra/sinatra) (ruby)
41+
25. [rails](https://github.com/rails/rails) (ruby)
4142

4243
### Ranking (Language)
4344

4445
1. crystal ([router_cr](https://github.com/tbrand/router.cr))
4546
2. python ([japronto](https://github.com/squeaky-pl/japronto))
46-
3. go ([fasthttprouter](https://github.com/buaazp/fasthttprouter))
47-
4. rust ([iron](https://github.com/iron/iron))
47+
3. rust ([nickel](https://github.com/nickel-org/nickel.rs))
48+
4. go ([fasthttprouter](https://github.com/buaazp/fasthttprouter))
4849
5. csharp ([aspnetcore](https://github.com/aspnet/Home))
4950
6. elixir ([plug](https://github.com/elixir-lang/plug))
5051
7. swift ([vapor](https://github.com/vapor/vapor))
51-
8. scala ([akkahttp](https://github.com/akka/akka-http))
52-
9. node ([clusterexpress](https://github.com/LearnBoost/cluster))
52+
8. node ([clusterexpress](https://github.com/LearnBoost/cluster))
53+
9. scala ([akkahttp](https://github.com/akka/akka-http))
5354
10. ruby ([roda](https://github.com/jeremyevans/roda))
55+
11. objc ([criollo](https://github.com/thecatalinstan/criollo))
5456

5557
### All frameworks
5658

5759
| Language (Runtime) | Framework (Middleware) | Max [sec] | Min [sec] | Ave [sec] |
5860
|---------------------------|---------------------------|-----------------|-----------------|-----------------|
59-
| ruby | rails | 151.196547 | 150.960227 | 151.073975 |
60-
| ruby | sinatra | 43.854565 | 43.581662 | 43.664177 |
61-
| ruby | roda | 15.892388 | 15.811082 | 15.844165 |
62-
| crystal | kemal | 3.547369 | 3.075486 | 3.444593 |
63-
| crystal | router_cr | 2.486733 | 2.284032 | 2.344394 |
64-
| crystal | raze | 2.490715 | 2.399881 | 2.456708 |
65-
| go | echo | 3.785530 | 3.511024 | 3.647536 |
66-
| go | gorilla_mux | 3.970627 | 3.522344 | 3.686079 |
67-
| go | iris | 3.938069 | 3.583784 | 3.776195 |
68-
| go | fasthttprouter | 2.824961 | 2.686712 | 2.731345 |
69-
| rust | iron | 2.865915 | 2.743227 | 2.812815 |
70-
| rust | nickel | 2.877018 | 2.823066 | 2.858988 |
71-
| rust | rocket | 3.276701 | 3.145324 | 3.204920 |
72-
| node | express | 13.961471 | 13.668522 | 13.791606 |
73-
| node | clusterexpress | 8.187491 | 7.431857 | 7.656550 |
74-
| elixir | plug | 4.895296 | 4.368241 | 4.727784 |
75-
| elixir | phoenix | 5.307217 | 4.877070 | 5.116376 |
76-
| swift | vapor | 5.613291 | 5.250472 | 5.479300 |
77-
| swift | perfect | 5.703425 | 5.575321 | 5.648020 |
78-
| swift | kitura | 6.678699 | 6.379810 | 6.503248 |
79-
| scala | akkahttp | 8.330310 | 7.047381 | 7.584030 |
80-
| csharp | aspnetcore | 3.959679 | 3.799744 | 3.860993 |
81-
| python | sanic | 7.359875 | 6.208559 | 6.735841 |
82-
| python | japronto | 2.639756 | 2.590362 | 2.610999 |
61+
| ruby | rails | 158.252949 | 152.902179 | 155.655884 |
62+
| ruby | sinatra | 50.694360 | 43.014136 | 47.820369 |
63+
| ruby | roda | 18.021737 | 16.183754 | 17.532603 |
64+
| crystal | kemal | 3.849068 | 3.183558 | 3.467156 |
65+
| crystal | router_cr | 2.636737 | 2.432839 | 2.492161 |
66+
| crystal | raze | 2.541773 | 2.506448 | 2.526932 |
67+
| go | echo | 4.762311 | 3.949864 | 4.438283 |
68+
| go | gorilla_mux | 4.596907 | 4.098254 | 4.354651 |
69+
| go | iris | 4.445337 | 3.879196 | 4.138097 |
70+
| go | fasthttprouter | 3.063812 | 2.892952 | 2.964931 |
71+
| rust | iron | 3.500870 | 2.850328 | 3.111342 |
72+
| rust | nickel | 3.056766 | 2.857153 | 2.942337 |
73+
| rust | rocket | 3.564244 | 3.261656 | 3.375485 |
74+
| node | express | 14.330640 | 14.023177 | 14.115579 |
75+
| node | clusterexpress | 8.468612 | 7.671729 | 7.898184 |
76+
| elixir | plug | 5.822447 | 4.320761 | 5.261752 |
77+
| elixir | phoenix | 6.393529 | 4.796465 | 5.914619 |
78+
| swift | vapor | 6.776044 | 5.411954 | 6.354711 |
79+
| swift | perfect | 7.103620 | 5.809812 | 6.627695 |
80+
| swift | kitura | 8.353631 | 6.686213 | 7.891552 |
81+
| scala | akkahttp | 9.341465 | 8.380177 | 8.819683 |
82+
| csharp | aspnetcore | 5.501347 | 4.215834 | 5.035063 |
83+
| python | sanic | 7.135462 | 4.771837 | 6.409820 |
84+
| python | japronto | 2.910558 | 2.688990 | 2.755750 |
85+
| objc | criollo | 32.403479 | 26.284483 | 30.581767 |
8386
<!-- Result till here -->
8487

8588
## Current target frameworks (middlewares)
@@ -125,7 +128,7 @@ See Development section when you want to add new languages or frameworks.
125128

126129
## The rule
127130

128-
We want to know the response time, not a usability. So full-stack framework is at a disadvantage.
131+
We want to know the response time (routing time), not a usability. So full-stack framework is at a disadvantage.
129132
- Each server has no special logics.
130133
- Each server's executable is named as `server_[Lauguage]_[Framework]`. (For example, `server_ruby_sinatra`)
131134
- There are only 3 routes

0 commit comments

Comments
 (0)