feat: add Docker Alpine benchmark suite#4
Conversation
Add a mock-based benchmark binary that measures parsync's parallel sync performance across four workload profiles (many small, medium, few large, mixed) with 1-16 workers. Includes a Dockerfile for reproducible Alpine builds and a helper script to run benchmarks in Docker. Results show up to 11.7x speedup on mixed workloads with 16 jobs. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Implementation NotesBenchmark approach: Uses a Why not Criterion: Criterion adds ~2 min compile time in Alpine. The custom harness compiles fast, runs 5 iterations per config, and outputs both JSON (for tooling) and markdown (for humans). Dockerfile strategy: Multi-stage build keeps the final image minimal (~15MB). The builder stage uses Interesting findings:
|
|
Hi @AlpinDale , Just wanted to add benchmarking with docker so anyone can test it and compare results and have a small results table in the README. |
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Removed the planning doc in bfc6aa3. PR should be clean now — only benchmark code, Dockerfile, script, and README updates remain. |
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Remove unused `sync::Mutex` import - Change `fn median` parameter from `&mut Vec<f64>` to `&mut [f64]` (clippy::ptr_arg) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
CI run #53 failed on both
Fixed in c4b1298. CI should pass now. |
|
Unnecessary for now |
Summary
benches/mock_sync.rs) that measures parallel sync performance across four workload profiles with 1–16 workersscripts/docker_bench.shto build and run benchmarks in Docker with JSON + markdown outputBenchmark Results
Tested on Docker
alpine:latestwith simulated per-read latency (no real SSH):Key findings
How to reproduce
Test plan
🤖 Generated with Claude Code