Skip to content

Latest commit

 

History

History
49 lines (35 loc) · 1.31 KB

File metadata and controls

49 lines (35 loc) · 1.31 KB

TaskFlow — Performance Guide

Targets

Operation Target Implementation
Startup < 1s Lazy view loading, WAL SQLite, minimal main bundle
Task create < 10ms Synchronous SQLite insert, no network
Search < 20ms Indexed title column, debounced 150ms
DB query < 5ms Prepared statements, covering indexes

SQLite Optimizations

PRAGMA journal_mode = WAL;
PRAGMA cache_size = -64000;  -- 64MB cache
PRAGMA synchronous = NORMAL;
PRAGMA temp_store = MEMORY;

Indexes on: completed, archived, category_id, project_id, due_date, sort_order, title, starred, pinned

Renderer Optimizations

  • Framer Motion: layout animations use GPU transforms
  • List rendering: AnimatePresence with stagger capped at 50ms
  • Search: 150ms debounce prevents query storms
  • Zustand: Selective subscriptions — components read only needed slices

Memory

  • No unbounded caches
  • Activity log limited to recent queries
  • Backup rotation keeps 10 files max

Profiling

# Electron dev tools
npm run dev
# Performance tab → record startup

# SQLite explain
EXPLAIN QUERY PLAN SELECT * FROM tasks WHERE title LIKE '%foo%';

Packaging Size

Electron adds ~150MB base. Future Tauri migration target: < 15MB.