x.async benchmarks
This folder contains cautious local benchmarks for the public x.async API.
They are observation tools, not correctness tests and not portable performance
claims.
Available benchmark
async_benchmark.v: measures short default runs forGroup,Task[T],Pool, bounded pool admission,with_timeout(), andevery().run_async_benchmark.sh: builds and runs the benchmark with the local./v, isolatedVTMP/VCACHE, and a temporary output binary.
Run
From the repository root:
sh vlib/x/async/benchmarks/run_async_benchmark.sh
The script is serialized by design. Do not run multiple V benchmark or test
runners against the same checkout/cache without isolating VTMP, VCACHE, and
output paths.
Parameters
The defaults are intentionally small. Tune them locally with:
XASYNC_BENCH_GROUP_ROUNDSXASYNC_BENCH_GROUP_JOBSXASYNC_BENCH_TASK_ROUNDSXASYNC_BENCH_POOL_JOBSXASYNC_BENCH_POOL_WORKERSXASYNC_BENCH_POOL_BOUNDED_ROUNDSXASYNC_BENCH_POOL_BOUNDED_TIMEOUT_MSXASYNC_BENCH_TIMEOUT_ROUNDSXASYNC_BENCH_EVERY_ITERATIONSXASYNC_BENCH_EVERY_INTERVAL_MS
The bounded pool admission case exercises submit_with_timeout() while the
pool is full and submit_with_context() after capacity opens. The timeout only
bounds admission; the benchmark does not make performance assertions.
Do not commit machine-specific benchmark results as permanent truth. Tests remain the authority for functional and concurrency-safety validation.