Skip to content

⚑ Performance Optimization ​

Making applications faster without premature optimization.

Golden rule ​

"Measure first, optimize second." β€” Never guess where the bottleneck is.

Performance checklist ​

Frontend ​

  • [ ] Minimize bundle size (tree shaking, code splitting)
  • [ ] Lazy load images and non-critical assets
  • [ ] Use CDN for static assets
  • [ ] Optimize images (WebP, responsive sizes)
  • [ ] Minimize layout shifts (CLS)
  • [ ] Cache aggressively with proper cache headers

Backend ​

  • [ ] Profile slow endpoints (APM tools)
  • [ ] Optimize database queries (indexes, N+1)
  • [ ] Add caching layer (Redis, in-memory)
  • [ ] Use pagination for large datasets
  • [ ] Compress responses (gzip/brotli)
  • [ ] Use connection pooling for DB

Database ​

  • [ ] Check query plans with EXPLAIN ANALYZE
  • [ ] Add missing indexes
  • [ ] Avoid SELECT * β€” fetch only needed columns
  • [ ] Use read replicas for heavy reads
  • [ ] Archive old data

Caching strategies ​

StrategyWhereTTLUse case
Browser cacheClientHours-daysStatic assets
CDNEdgeMinutes-hoursPublic content
Application cacheServer (Redis)Seconds-minutesAPI responses, sessions
Query cacheDBVariesExpensive queries

Cache invalidation ​

  • TTL-based β€” Expires after a set time (simplest)
  • Event-based β€” Invalidate on write/update
  • Versioned keys β€” user:123:v2 β€” bump version on change

Common bottlenecks ​

LayerSymptomLikely cause
FrontendSlow first paintLarge bundle, render-blocking resources
APIHigh latencySlow DB queries, missing cache
DatabaseHigh CPUMissing indexes, bad queries
NetworkTimeoutNo CDN, large payloads, no compression

Pergame Knowledge Base