1
0
mirror of https://github.com/actix/actix-extras.git synced 2024-11-24 07:53:00 +01:00

update readme

This commit is contained in:
Nikolay Kim 2017-12-16 11:22:39 -08:00
parent 91ffab8f6e
commit 167717d20e

View File

@ -39,18 +39,18 @@ fn main() {
## Benchmarks ## Benchmarks
This is totally unscientific and probably pretty useless. In real world business This is totally unscientific and probably pretty useless. In real world, business
logic would dominate on performance side. But in any case. i took several web frameworks logic would dominate on performance side. I took several web frameworks
for rust and used theirs *hello world* example. All projects are compiled with for rust and used *hello world* examples for tests. All projects are compiled with
`--release` parameter. I didnt test single thread performance for iron and rocket. `--release` parameter. I didnt test single thread performance for *iron* and *rocket*.
As a testing tool i used `wrk` and following commands As a testing tool i used `wrk` and following commands
`wrk -t20 -c100 -d10s http://127.0.0.1:8080/` `wrk -t20 -c100 -d10s http://127.0.0.1:8080/`
`wrk -t20 -c100 -d10s http://127.0.0.1:8080/ -s ./pipeline.lua --latency -- / 128` `wrk -t20 -c100 -d10s http://127.0.0.1:8080/ -s ./pipeline.lua --latency -- / 128`
I ran all tests on localhost on MacBook Pro late 2017. It has 4 cpu and 8 logical cpus. I ran all tests on my MacBook Pro with 2.9Gh i7 with 4 physical cpus and 8 logical cpus.
Each result is best of five runs. All measurements are req/sec. Each result is best of five runs. All measurements are *req/sec*.
Name | 1 thread | 1 pipeline | 3 thread | 3 pipeline | 8 thread | 8 pipeline Name | 1 thread | 1 pipeline | 3 thread | 3 pipeline | 8 thread | 8 pipeline
---- | -------- | ---------- | -------- | ---------- | -------- | ---------- ---- | -------- | ---------- | -------- | ---------- | -------- | ----------
@ -61,12 +61,13 @@ Rocket | | | | | 95.500 | failed
Shio | 71.800 | 317.800 | | | | | Shio | 71.800 | 317.800 | | | | |
tokio-minihttp | 106.900 | 1.047.000 | | | | tokio-minihttp | 106.900 | 1.047.000 | | | |
Some notes on results. Iron and Rocket got tested with 8 threads, I got best performance for sync frameworks with 8 threads, other number of
which showed best results. Gothan and tokio-minihttp seem does not support threads always gave me worse performance. *Iron* could handle piplined
multithreading, or at least i couldn't figured out. I manually enabled pipelining requests with lower performace. Interestingly, *Rocket* completely failed in pipelined test.
for *Shio* and Gotham*. While shio seems support multithreading, but it showed *Gothan* seems does not support multithreading, or at least i couldn't figured out.
absolutly same results for any how number of threads (maybe macos problem?) I manually enabled pipelining for *Shio* and *Gotham*. While *shio* seems support
Rocket completely failed in pipelined tests. multithreading, but it result absolutly same results for any how number of threads
(maybe macos problem?).
## Examples ## Examples