feat: criterion benchmarks proving primitive overhead is negligible

This commit is contained in:
asepharyana committed 2026-08-29 22:14:01 +07:00
1 parent a6cf58ea7f
commit 5df04d7512
4 files changed
+381 -1

No files matched your search

+34
View File
@@ -0,0 +1,34 @@
# Implementation Spec: Round 19 — Criterion Benchmarks
## Goal
Buktikan klaim "secepat mungkin" (tujuan awal project) dengan benchmark
nyata. Ukur overhead primitives race-safe vs baseline naif, supaya user
tahu trade-off dan bisa memilih fitur dengan data.
## New files
### crates/mytheclipse/benches/primitives.rs
Criterion bench untuk primitives core (feature `full`):
- `parallel_map`: throughput 1000 item, concurrency 8 vs sequential loop
(pakai `black_box`)
- `retry_ext`: overhead `.retry()` success-first vs 2 retries
- `rate_limiter`: `RateLimiter::try_acquire` throughput (atomic CAS)
- `semaphore_pool`: acquire/release cycle throughput — bukti no-leak + low
overhead
- `aggregate_error`: `from_results` 1000 results all-ok vs 50% err
- `shutdown_guard`: new + drop cost
## Dependency
- dev-deps: `criterion = "0.5"` + `[[bench]]` harness = false
- `harness = false` di Cargo.toml bench section (criterion punya main sendiri)
## Verification
1. `cargo bench -p mytheclipse --bench primitives --all-features` — runs,
reports times
2. `cargo build --workspace --all-features` — exit 0
3. `cargo clippy --workspace --all-features` — 0 new warnings
4. Spec + commit + push
## Notes
- Criterion 0.5 mendukung MSRV 1.60 — aman untuk rust-version 1.75.
- Bench tidak jalan di CI (hanya manual) — tidak mempengaruhi pipeline.