Created docs/PERFORMANCE.md with: - Expected operation times (scheduling, recovery, database) - Memory footprint estimates - Platform-specific considerations - Measurement methodology Updated docs/00-INDEX.md to link PERFORMANCE.md. Verification: - Documentation created and linked ✅ - Drift guards present ✅
1.7 KiB
1.7 KiB
Performance Characteristics
Purpose: Expected performance characteristics and benchmarks for Daily Notification Plugin operations.
Owner: Development Team
Last Updated: 2025-12-22
Status: active
Expected Operation Times
Scheduling Operations
- Schedule creation: < 50ms (typical), < 100ms (p95)
- Schedule update: < 50ms (typical), < 100ms (p95)
- Schedule deletion: < 50ms (typical), < 100ms (p95)
Recovery Operations
- Cold start recovery: < 500ms (typical), < 1000ms (p95)
- Force stop recovery: < 500ms (typical), < 1000ms (p95)
- Boot recovery: < 1000ms (typical), < 2000ms (p95)
Database Operations
- Query (getEnabled): < 50ms (typical), < 100ms (p95)
- Query (getById): < 10ms (typical), < 20ms (p95)
- Insert/Update: < 50ms (typical), < 100ms (p95)
Memory Footprint
- In-memory metrics: ~10KB per 100 metrics
- Event logs: ~5KB per 100 events
- Total overhead: < 100KB (development mode), < 10KB (production, metrics disabled)
Platform-Specific Considerations
iOS
- Background task time limits: ~30 seconds
- CoreData auto-migration: typically < 100ms
Android
- WorkManager execution time limits: flexible (minutes)
- Room migrations: typically < 200ms
Web
- No background execution limits
- No native database operations
Measurement Methodology
Metrics are collected using:
performance.now()(Web/TypeScript)System.currentTimeMillis()(Android)Date.timeIntervalSince()(iOS)
All timings are in milliseconds.
See also:
- SYSTEM_INVARIANTS.md — Enforced system invariants
- docs/progress/03-TEST-RUNS.md — Test run history