Performance Benchmarks
Walrust is optimized to use less memory than Litestream. This page summarizes performance characteristics based on our benchmark suite.
Quick Results
Section titled “Quick Results”Memory Efficiency
Section titled “Memory Efficiency”Walrust uses less memory than Litestream, especially when watching multiple databases:
| Databases | walrust | litestream | Reduction |
|---|---|---|---|
| 1 | 19 MB | 36 MB | 47% |
| 10 | 19 MB | 55 MB | 65% |
| 100 | 20 MB | 160 MB | 88% |
Walrust’s memory usage remains ~19-20 MB regardless of database count.
Change Detection
Section titled “Change Detection”Walrust detects SQLite changes with low latency:
| Databases | p50 Latency | p99 Latency |
|---|---|---|
| 10 | < 5ms | < 15ms |
| 100 | < 10ms | < 50ms |
Startup Time
Section titled “Startup Time”Walrust starts quickly even with many databases:
| Databases | Startup Time |
|---|---|
| 10 | < 100ms |
| 100 | < 500ms |
| 1000 | < 3s |
Running Benchmarks
Section titled “Running Benchmarks”To run the benchmark suite locally:
# Start MinIO for S3-compatible storagemake bench-minio
# Run all benchmarksmake bench-all
# Or run individual benchmarksmake bench-compare # Memory/CPU comparisonmake bench-multidb # Multi-database performancemake bench-realworld # Sync latency, restore, throughput
# Stop MinIO when donemake bench-minio-stopJSON Output
Section titled “JSON Output”All benchmarks support JSON output for CI integration:
python bench/compare.py --use-minio --json > results.jsonLearn More
Section titled “Learn More”- Methodology - How benchmarks are run
- Latest Results - Detailed benchmark data