# 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](./SYSTEM_INVARIANTS.md) — Enforced system invariants - [docs/progress/03-TEST-RUNS.md](./progress/03-TEST-RUNS.md) — Test run history