Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/michalzalecki/test-async-hooks-perf
Compare performance of setting request id with Express context vs async_hooks (cls-hooked)
https://github.com/michalzalecki/test-async-hooks-perf
Last synced: 28 days ago
JSON representation
Compare performance of setting request id with Express context vs async_hooks (cls-hooked)
- Host: GitHub
- URL: https://github.com/michalzalecki/test-async-hooks-perf
- Owner: MichalZalecki
- Created: 2020-05-02T12:54:36.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2022-12-12T16:03:11.000Z (about 2 years ago)
- Last Synced: 2024-10-25T12:38:06.885Z (3 months ago)
- Language: TypeScript
- Homepage:
- Size: 22.5 KB
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# test-async-hooks-perf
Very simplistic synthetic benchmark to compare [performance](https://github.com/nodejs/benchmarking/issues/181) of setting Express request context and cls-hooked (async_hooks).
## Build & run
yarn build
node ./src/example1
node ./src/example2## Benchmark
**Express context (example1)**
$ wrk -d 30 http://localhost:3000/hello
Running 30s test @ http://localhost:3000/hello
2 threads and 10 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 798.77us 402.65us 10.69ms 95.67%
Req/Sec 6.61k 640.51 7.22k 96.01%
396071 requests in 30.10s, 98.21MB read
Requests/sec: 13158.10
Transfer/sec: 3.26MB**cls-hooked (example2)**
$ wrk -d 30 http://localhost:3000/hello
Running 30s test @ http://localhost:3000/hello
2 threads and 10 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 618.40us 312.55us 12.55ms 85.30%
Req/Sec 8.41k 0.97k 15.16k 82.86%
502692 requests in 30.10s, 124.65MB read
Requests/sec: 16700.19
Transfer/sec: 4.14MB**Result**
21% decressed performance on MacBook Pro (15-inch, 2018) using Node v14.1.0. Don't take this number too serious. Just keep it mind that there's a correlation between performance and using async_hooks.