Conversation
…arison Add _lockless variants to asio and asio_callback across socket_throughput, socket_latency, local_socket_throughput, local_socket_latency, fan_out, accept_churn, http_server, and timer, mirroring corosio's single-threaded configurations by constructing the io_context with BOOST_ASIO_CONCURRENCY_HINT_UNSAFE. Follows the existing pattern in io_context_bench.cpp. Move throughput byte accounting out of the read loop into a local int64_t accumulator, calling state.add_bytes once after ioc.run() returns. The previous per-read state.add_bytes was an atomic fetch_add on every completion, which added ~20ns × N_reads to the measured elapsed time and structurally disadvantaged the faster library at small chunk sizes. Multithread benches still use atomic aggregation (required for correctness across N runner threads).
|
Important Review skippedReview was skipped due to path filters ⛔ Files ignored due to path filters (26)
CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
An automated preview of the documentation is available at https://236.corosio.prtest3.cppalliance.org/index.html If more commits are pushed to the pull request, the docs will rebuild at the same URL. 2026-04-20 15:42:36 UTC |
|
GCOVR code coverage report https://236.corosio.prtest3.cppalliance.org/gcovr/index.html Build time: 2026-04-20 15:51:31 UTC |
Add --warmup <secs> flag (default 0, disabled) that runs every benchmark
once with a throwaway state before the real measurement. The self-warmup
exercises the exact code path being measured, eliminating the sync-vs-async
warmup asymmetry in the previous scheme where corosio's set_warmup lambdas
exercised async I/O paths while asio's used synchronous asio::write/read.
Removes benchmark_suite::set_warmup and all 18 .set_warmup([]{...}) call
sites across corosio, asio coroutine, and asio callback. For benches with
needs_conntrack_drain, drain runs before both warmup and real measurement.
e887b9d to
c596fb4
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## develop #236 +/- ##
========================================
Coverage 77.71% 77.71%
========================================
Files 96 96
Lines 7298 7298
Branches 1787 1787
========================================
Hits 5672 5672
Misses 1108 1108
Partials 518 518 Continue to review full report in Codecov by Sentry.
🚀 New features to boost your workflow:
|
No description provided.