Skip to main content

Documentation

Benchmarks

No benchmark suite ships in this repo today — here's how to add one

Benchmarks

📈 Performance Benchmarks

No benchmark suite exists today

There is no committed Criterion benchmark suite in this repo — stackhouse/Cargo.toml has no criterion dependency and no [[bench]] target, and there is no benches/ directory. cargo bench will not run anything useful today. The numbers that previously appeared on this page (Stackhouse vs. Postgres vs. MongoDB throughput/latency, HNSW build/search figures) were not backed by any benchmark code in this repository and have been removed rather than presented as measured results.

Vector search is delegated to an external Qdrant instance (see API Reference and Vector Search) — Stackhouse does not implement or tune its own HNSW index, so any future vector-search benchmarks here should measure the Qdrant deployment being used, not a component of this codebase.

Adding Benchmarks

To add real, reproducible benchmarks:

# Add criterion as a dev-dependency in stackhouse/Cargo.toml, e.g.:
# [dev-dependencies]
# criterion = { version = "0.5", features = ["async_tokio"] }
# [[bench]]
# name = "storage"
# harness = false

cargo bench

Running Custom Benchmarks

use criterion::{black_box, criterion_group, criterion_main, Criterion};

fn bench_insert(c: &mut Criterion) {
    c.bench_function("insert_1k", |b| {
        b.iter(|| {
            // Insert 1000 items
            black_box(db.insert_batch(data))
        })
    });
}

criterion_group!(benches);
criterion_main!(benches);

Documentation Complete! 🎉