skills/mindrally/skills/performance-optimization

performance-optimization

SKILL.md

Performance Optimization Skill

Comprehensive frameworks for analyzing and optimizing application performance across the entire stack.

Overview

  • Application feels slow or unresponsive
  • Database queries taking too long
  • Frontend bundle size too large
  • API response times exceed targets
  • Core Web Vitals need improvement
  • Preparing for scale or high traffic

Performance Targets

Core Web Vitals (Frontend)

Metric Good Needs Work
LCP (Largest Contentful Paint) < 2.5s < 4s
INP (Interaction to Next Paint) < 200ms < 500ms
CLS (Cumulative Layout Shift) < 0.1 < 0.25
TTFB (Time to First Byte) < 200ms < 600ms

Backend Targets

Operation Target
Simple reads < 100ms
Complex queries < 500ms
Write operations < 200ms
Index lookups < 10ms

Bottleneck Categories

Category Symptoms Tools
Network High TTFB, slow loading Network tab, WebPageTest
Database Slow queries, pool exhaustion EXPLAIN ANALYZE, pg_stat_statements
CPU High usage, slow compute Profiler, flame graphs
Memory Leaks, GC pauses Heap snapshots
Rendering Layout thrashing React DevTools, Performance tab

Protocol References

Database Optimization

See: references/database-optimization.md

Key topics covered:

  • N+1 query detection and fixes with SQLAlchemy selectinload
  • Index selection strategies (B-tree, GIN, HNSW, Hash)
  • EXPLAIN ANALYZE interpretation
  • Connection pooling configuration
  • Cursor vs offset pagination

Caching Strategies

See: references/caching-strategies.md

Key topics covered:

  • Multi-level cache hierarchy (L1-L4)
  • Cache-aside and write-through patterns
  • Cache invalidation strategies (TTL, event-based, tag-based)
  • Redis patterns (strings, hashes, lists, sets)
  • Cache stampede prevention
  • HTTP caching headers and ETags

Core Web Vitals

See: references/core-web-vitals.md

Key topics covered:

  • LCP optimization (images, SSR, critical CSS)
  • INP optimization (debounce, Web Workers, task splitting)
  • CLS optimization (image dimensions, font loading)
  • Measuring with web-vitals library
  • Lighthouse auditing

Frontend Performance

See: references/frontend-performance.md

Key topics covered:

  • Code splitting with React.lazy()
  • Tree shaking and import optimization
  • Image optimization (WebP, AVIF, lazy loading)
  • Memoization (memo, useMemo, useCallback)
  • List virtualization with @tanstack/react-virtual
  • Bundle analysis tools

Profiling Tools

See: references/profiling.md

Key topics covered:

  • Python profiling (cProfile, py-spy, memory_profiler)
  • Chrome DevTools Performance and Memory tabs
  • React DevTools Profiler
  • PostgreSQL query profiling (pg_stat_statements)
  • Flame graph interpretation
  • Load testing with k6 and Locust

Quick Diagnostics

Database

-- Find slow queries (PostgreSQL)
SELECT query, calls, mean_time / 1000 as mean_seconds
FROM pg_stat_statements ORDER BY total_time DESC LIMIT 10;

-- Verify index usage
EXPLAIN ANALYZE SELECT * FROM orders WHERE user_id = 123;

Frontend

# Lighthouse audit
lighthouse http://localhost:3000 --output=json

# Bundle analysis
npx vite-bundle-visualizer  # Vite
ANALYZE=true npm run build  # Next.js

Backend

# Profile running FastAPI server
py-spy record --pid $(pgrep -f uvicorn) --output profile.svg

Monitoring Checklist

Before Launch

  • Lighthouse score > 90
  • Core Web Vitals pass
  • Bundle size within budget
  • Database queries profiled
  • Compression enabled
  • CDN configured

Ongoing

  • Performance monitoring active
  • Alerting for degradation
  • Lighthouse CI in pipeline
  • Weekly query analysis
  • Real User Monitoring (RUM)

Real-World Examples

Hybrid Search Optimization

Problem: Retrieval pass rate was 87.2%, needed >90%

Solution: Increased RRF fetch multiplier from 2x to 3x, added metadata boosting

Results:

  • Pass rate: 87.2% -> 91.6% (+5.1%)
  • MRR: 0.723 -> 0.777 (+7.4%)
  • Query time: 85ms -> 5ms (HNSW index)

LLM Response Caching

Problem: LLM costs projected at $35k/year

Solution: Multi-level cache hierarchy (Claude prompt cache + Redis semantic cache)

Results:

  • Baseline: $35k/year -> With caching: $2-5k/year
  • Cost reduction: 85-95%
  • Latency: 2000ms -> 5-10ms (semantic cache hit)

Vector Index Selection

Problem: Vector searches taking 85ms, needed <10ms

Solution: Switched from IVFFlat to HNSW index

Results:

  • Query time: 85ms -> 5ms (17x faster)
  • Trade-off: Slower indexing (8s vs 2s) for faster queries

Templates Reference

Template Purpose
database-optimization.ts N+1 fixes, pagination, pooling
caching-patterns.ts Redis cache-aside, memoization
frontend-optimization.tsx React memo, virtualization, code splitting
api-optimization.ts Compression, ETags, field selection
performance-metrics.ts Prometheus metrics, performance budget

Extended Thinking Triggers

Use Opus 4.5 extended thinking for:

  • Complex debugging - Multiple potential causes
  • Architecture decisions - Caching strategy selection
  • Trade-off analysis - Memory vs CPU vs latency
  • Root cause analysis - Performance regression investigation

Related Skills

  • caching-strategies - Detailed Redis caching patterns and cache invalidation
  • database-schema-designer - Indexing strategies and query optimization fundamentals
  • observability-monitoring - Performance monitoring and alerting integration
  • devops-deployment - CDN configuration and infrastructure optimization

Key Decisions

Decision Choice Rationale
Pagination strategy Cursor-based for large datasets Stable performance regardless of offset, handles concurrent inserts
Vector index type HNSW over IVFFlat 17x faster queries, worth slower indexing for read-heavy workloads
Cache hierarchy Multi-level (L1-L4) Optimizes hit rates, reduces load on expensive operations
Bundle splitting Route-based code splitting Reduces initial load, enables parallel downloads

Skill Version: 1.2.0 Last Updated: 2026-01-15 Maintained by: AI Agent Hub Team

Changelog

v1.2.0 (2026-01-15)

  • Refactored to reference-based structure
  • Moved detailed content to references/ directory
  • Reduced SKILL.md from 1079 to ~290 lines

v1.1.0 (2025-12-25)

  • Added comprehensive Frontend Bundle Analysis section
  • Added React 19 performance patterns
  • Added TanStack Virtual list virtualization

v1.0.0 (2025-12-14)

  • Initial skill with database optimization, caching, and profiling

Capability Details

database-optimization

Keywords: slow query, n+1, query optimization, explain analyze, index, postgres performance Solves:

  • How do I optimize slow database queries?
  • Fix N+1 query problems with eager loading
  • Use EXPLAIN ANALYZE to diagnose queries
  • Add missing indexes for performance

caching-strategies

Keywords: cache, redis, cdn, cache-aside, write-through, semantic cache Solves:

  • How do I implement multi-level caching?
  • Cache-aside vs write-through patterns
  • Semantic cache for LLM responses
  • Cache invalidation strategies

frontend-performance

Keywords: bundle size, lazy load, code splitting, tree shaking, lighthouse, web vitals Solves:

  • How do I reduce frontend bundle size?
  • Implement code splitting with React.lazy()
  • Optimize Lighthouse scores
  • Fix Core Web Vitals issues

core-web-vitals

Keywords: lcp, inp, cls, core web vitals, ttfb, fid Solves:

  • How do I improve Core Web Vitals?
  • Optimize LCP (Largest Contentful Paint)
  • Fix CLS (Cumulative Layout Shift)
  • Improve INP (Interaction to Next Paint)

profiling

Keywords: profile, flame graph, py-spy, chrome devtools, memory leak, cpu bottleneck Solves:

  • How do I profile my Python backend?
  • Generate flame graphs with py-spy
  • Profile React components with DevTools
  • Find memory leaks in frontend

bundle-analysis

Keywords: bundle analyzer, vite visualizer, webpack bundle, tree shaking Solves:

  • How do I analyze bundle size?
  • Use Vite bundle visualizer
  • Identify large dependencies
  • Optimize bundle with tree shaking
Weekly Installs
1
Installed on
windsurf1
opencode1
codex1
claude-code1
antigravity1
gemini-cli1