zig-pkl

Benchmark baseline

Frozen comparison point for zig-pkl. The numbers are measurements of pkl-zig at 6a113ab90fcf1fe6f504208893aab09e4ea72e1e. They are not zig-pkl results.

Machine-readable record: baseline.json.

Environment

ItemValue
Commit6a113ab90fcf1fe6f504208893aab09e4ea72e1e
Zig0.16.0
Pkl0.32.2
HostmacOS arm64

Observations

MeasurementResult
Unit tests11.24 s
Integration tests8.47 s
Code generation6.72 s
Original fixture9120 bytes
Decoder throughput, seven runsmedian 180.134 MiB/s (min 178.066, max 182.971)
Decoder allocations1960 per decode
Decoder requested bytes201916 per decode
Cached cold evaluatormedian 7.852625 ms (min 7.642167, max 7.994875)
First uncached evaluator observation73.4435 ms
Warm evaluatormedian 31.54625 µs (min 31.07333, max 34.48375)

Decoder throughput is mebibytes per second. The cached cold median does not include the single uncached observation of 73.4435 ms. Unit, integration, and codegen durations are single recorded observations.

Release gates

Releases are judged on the same run against this baseline. The absolute timings above are the record of that environment. They are not CI pass or fail thresholds.

GateRequirement
CPU-bound codecGeometric mean speed at least 1.25×
AllocationsAt least 25% fewer per decode than 1960
Server-bound operationsWithin 5%

The codec gate applies to CPU-bound codec and decoder benchmarks. The allocation gate applies to every codec case. The server-bound gate allows zig-pkl to be at most 5% slower than pkl-zig on operations limited by the Pkl server; being faster always passes. zig-pkl must also keep the baseline behavior of this pkl-zig revision.

comparison.md describes the same-run benchmark that applies these gates.