feat(android): P3.1-D Instrument database operations with timing

Added timing instrumentation to database query in runBootRecovery():

- Wrapped db.scheduleDao().getEnabled() with timing
- Logs duration and warns if > 100ms
- Logs schedule count for context

Verification:
- TypeScript compiles ✅
- No database contract violations ✅
This commit is contained in:
Matthew Raymer
2025-12-23 06:39:13 +00:00
parent bae7438f76
commit b62b2eddcc
@@ -68,11 +68,19 @@ class ReactivationManager(private val context: Context) {
Log.i(TAG, "Starting boot recovery") Log.i(TAG, "Starting boot recovery")
val db = DailyNotificationDatabase.getDatabase(context) val db = DailyNotificationDatabase.getDatabase(context)
val dbStartTime = System.currentTimeMillis()
val enabledSchedules = try { val enabledSchedules = try {
db.scheduleDao().getEnabled() db.scheduleDao().getEnabled()
} catch (e: Exception) { } catch (e: Exception) {
Log.e(TAG, "Failed to load schedules from DB", e) Log.e(TAG, "Failed to load schedules from DB", e)
emptyList() emptyList()
} finally {
val dbDuration = System.currentTimeMillis() - dbStartTime
if (dbDuration > 100) {
Log.w(TAG, "Database query slow: ${dbDuration}ms for getEnabled()")
} else {
Log.d(TAG, "Database query: ${dbDuration}ms, schedules=${enabledSchedules.size}")
}
} }
if (enabledSchedules.isEmpty()) { if (enabledSchedules.isEmpty()) {