Files
mytheclipse/.hermes/plans/mytheclipse-round19-spec.md
T

1.3 KiB

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.