7.8. benchctl — Benchmark Result Database

benchctl stores daslang benchmark results in a local SQLite database and compares result sets with statistical significance (a port of Go’s benchstat Welch’s t-test). It reads the JSON files the benchmark runner emits (dastest --bench --bench-format json), tags records by commit hash, and computes per-benchmark and geometric-mean deltas between two sets.

Requires a daslang build with the sqlite module (-DDAS_SQLITE_DISABLED=off). The SDK bundle also carries a prebuilt bin/benchctl.exe.

7.8.1. Quick start

daslang utils/benchctl/main.das -- <command> [options...]

Commands: reset (initialize the database — drops existing data), insert (load benchmark JSON files, tagged by commit), query (filter records by --commit / --tag), compare (two result sets, significance-tested). All commands accept --db <path> (default benchdata.db).

The database is plain SQLite — browse or export it with any sqlite3 client.

See also

dastest — Test Framework – the benchmark runner that produces the JSON input