Benchmark Environment
This section documents the hardware and system environment used to run all benchmarks in this guide.
System Overview
Component |
Details |
|---|---|
CPU |
AMD Ryzen 7 5700U with Radeon Graphics (8 cores / 16 threads, up to 4.37 GHz, Zen 2) |
CPU Architecture |
x86_64 (supports AVX, AVX2, FMA, BMI1/2, SHA-NI, AES-NI) |
Memory (RAM) |
16 GB total (14 GiB usable) |
Storage |
WD PC SN560 NVMe SSD — 1 TB (PCIe NVMe, non-rotational) |
Operating System |
Ubuntu 24.04.2 LTS (Noble Numbat), 64-bit |
Kernel Version |
Linux 6.14.0-36-generic (PREEMPT_DYNAMIC) |
PostgreSQL Version |
16.10 (Ubuntu 16.10-0ubuntu0.24.04.1) |
Extensions Used |
|
Benchmark Configuration
Setting |
Value |
Notes |
|---|---|---|
shared_buffers |
16384 → 16 MB |
Very small (default on many distros) |
work_mem |
4096 → 4 MB per query |
Affects sort/hash operations |
maintenance_work_mem |
65536 → 64 MB |
Used for CREATE INDEX |
effective_cache_size |
524288 → 512 MB |
Planner estimate of OS page cache |
synchronous_commit |
ON |
Safer but slightly slower writes |
wal_level |
replica |
Allows logical/physical replication (default for modern PG) |
Benchmark Methodology
Queries were executed with
\timing on.EXPLAIN ANALYZEis used for detailed plan inspection.
Reproducibility Instructions
To reproduce identical performance:
Restart PostgreSQL before cold-cache benchmarks:
sudo systemctl restart postgresql
Ensure OS disk cache is cleared (optional, requires sudo):
sync; echo 3 | sudo tee /proc/sys/vm/drop_caches
Disable power-saving CPU governors:
sudo cpupower frequency-set -g performance
Run each query three times, discard the first warm run, take the median.
Notes
Hardware differences significantly impact absolute latency numbers.
Your Biscuit index speedups will vary depending on:
Disk speed
CPU branch prediction
Text pattern distribution
PostgreSQL configuration