Performance
Compile benchmarks, incremental caches, watch compilers, scale runs, and safety fuzzing.
Quire performance work has compile-time surfaces: benchmarks, incremental compile, watch compile APIs, generated large-corpus runs, and scale safety fuzzing.
These tools are for tracking compiler and host behavior. They are not runtime dependencies for rendered sites.
Compile benchmark
Run the standard benchmark:
npm run bench:compile
Run a CLI benchmark for a file:
quire bench examples/product.quire --iterations 50 --json
The output format is quire.compile.benchmark and includes cold timing plus incremental timing, cache hits, and cache misses.
Incremental compile
createIncrementalCompiler() caches compiled IR by source file and a deterministic signature of the source text, file path, project schema path, and merged project schema.
The source example used for simple benchmark runs is examples/product.quire:
quire ProductPage {
model {
product: Product
cart: Cart
}
route "/products/{product.slug}"
title product.title
section hero {
text eyebrow {
value product.collection.title
variant "eyebrow"
}
When a signature is unchanged, the compiler returns a cloned cached IR document. Returning clones keeps callers from mutating cache state and preserves deterministic output.
buildProject() also accepts an incrementalCache map for hosts that want to reuse compile results across repeated builds.
Watch compile
createWatchCompiler() is the file-backed cache surface for editor and watch-mode hosts. It reads files from disk, loads the same project schema resolution used by the CLI, compiles through the deterministic incremental cache, and reports cache hits and misses per file.
Hosts can call invalidate(file) after deletes or renames, and clear() for a full rebuild.
Scale and fuzz
Scale benchmarks generate deterministic .quire sources in memory and track compiler behavior across thousands of files:
npm run bench:scale
quire bench-scale --files 1000 --iterations 2 --json
Safety fuzzing keeps malformed input contained as diagnostics:
quire bench-safety --cases 1000 --json
Every successfully compiled fuzz document is checked against the safe IR contract. Unexpected exceptions fail the run.