Giter VIP home page Giter VIP logo

rust-web-benchmarks's People

Contributors

chrislearn avatar dignifiedquire avatar fergus-hou avatar fundon avatar ibraheemdev avatar lexcao avatar nashley avatar programatik29 avatar samal-rasmussen avatar ynuwenhof avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

rust-web-benchmarks's Issues

Add explanation to benchmarks results

It would help newbies if some explanation is added to benchmarks results like lower is better or higher is better.
I think this explanation should be printed by rewrk by defualt.

Delay before kill

I have a problem, Windows 11 Pro 22621

thread 'main' panicked at 'failed to bind listener: Os { code: 10048, kind: AddrInUse, message: "Solo se permite un uso de cada dirección de socket (protocolo/dirección de red/puerto)" }', C:\Users\afcar\.cargo\registry\src\github.com-1ecc6299db9ec823\astra-0.1.3\src\server.rs:108:58

In the part of bench-bot, seems that kill is not fast enough
Line 185
let _ = server.kill(); //This only works with a delay
I just added delay before killing and now it works
thread::sleep(Duration::from_secs(5));
This should be a PR but I'm not sure, anyways if someone has this problem it's a simple fix

Different Transfer per Request

Even though Hyper and Axum have very close request/sec their MB/sec is very different. I believe this is due to the default headers returned by different frameworks. If all the frameworks respond with the same amount of data per request, that could change the results, but I am not sure by how much.

Show the benchmark result with table?

Background

It would be nice if there is a table showing the result of the benchmark between each web framework.

Expectation

It is something like that:

framework Latencies.Avg ... Requests.Total ... Transfer.Total ... Maximum Memory Usage
actix-web 0.50ms ... 30178057 ... 3.65 GB .. 13.7 MB
...

Anything else

I am willing to add this feature.

Failed to test on Mac systems

osinfo:

ProductName: macOS
ProductVersion: 11.5.2
BuildVersion: 20G95

kern.maxfilesperproc: 49152
kern.maxfiles: 98304

result:

➜ echo "Results for hyper:" && rewrk -t 12 -c 300 -d 10s -h http://localhost:3000/

Results for hyper:
Beginning round 1...
Benchmarking 300 connections @ http://localhost:3000/ for 10 second(s)
failed to run benchmark round due to error: error combining results: connection closed

use wrk it's ok:

➜ wrk -t12 -c400 -d30s --latency http://localhost:3000/
wrk http://localhost:3000/
Running 30s test @ http://localhost:3000/
12 threads and 400 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 808.44us 247.22us 3.95ms 72.97%
Req/Sec 23.51k 9.67k 141.20k 79.11%
Latency Distribution
50% 819.00us
75% 0.96ms
90% 1.10ms
99% 1.40ms
7020424 requests in 30.10s, 589.18MB read
Socket errors: connect 157, read 89, write 0, timeout 0
Requests/sec: 233235.83
Transfer/sec: 19.57MB

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.