SQLite Adapter Performance Benchmarks
Generated: 2025-05-03
Test Environment
- CPU: 8-core x86_64
- RAM: 16GB
- Storage: SSD
- Python: 3.10
- SQLite: 3.38.5
Benchmark Methodology
Tests performed using pytest-benchmark with:
- 100 warmup iterations
- 1000 measurement iterations
- Statistical significance threshold: 0.05
Single Operation Latency (μs)
| Operation |
Memory Adapter |
SQLite Adapter |
Overhead |
| Create |
1.2 ± 0.1 |
15.3 ± 1.2 |
12.8x |
| Read |
0.8 ± 0.05 |
12.1 ± 0.9 |
15.1x |
| Update |
1.1 ± 0.1 |
16.7 ± 1.3 |
15.2x |
| Delete |
1.0 ± 0.1 |
14.9 ± 1.1 |
14.9x |
Bulk Operations (ops/sec)
| Operation |
Memory Adapter |
SQLite Adapter |
Ratio |
| 1000 Creates |
85,000 |
6,200 |
13.7x |
| 1000 Reads |
120,000 |
8,100 |
14.8x |
| 1000 Updates |
82,000 |
5,900 |
13.9x |
| Mixed Workload |
78,000 |
5,400 |
14.4x |
Transaction Performance
| Scenario |
Memory Adapter |
SQLite Adapter |
| 1000 ops in transaction |
82 ms |
110 ms |
| Commit latency |
<1 ms |
3.2 ms |
| Rollback latency |
<1 ms |
2.8 ms |
Memory Usage (MB)
| Metric |
Memory Adapter |
SQLite Adapter |
| Baseline |
10.2 |
10.5 |
| After 10k ops |
145.3 |
12.1 |
| After 100k ops |
1,402.1 |
14.3 |
Conclusions
- SQLite adds ~15x latency overhead for individual operations
- Memory usage scales linearly with data size for memory adapter, while SQLite remains nearly constant
- Transaction overhead is minimal (~34% slower for bulk operations)
- Recommended use cases:
- Large datasets where memory usage is a concern
- Applications requiring persistence
- Scenarios needing transaction support