Labsco
mastra-ai logo

performance-review

โ˜… 25,837

by mastra-ai ยท part of mastra-ai/mastra

A reviewer's checklist for the things that quietly make software slow, covering the database, memory use, what the screen redraws, network calls and slow calculations.

๐Ÿงฉ One of 21 skills in the mastra-ai/mastra package โ€” works on its own, and pairs well with its siblings.

WHEN YOUR AGENT SHOULD USE IT

A QUICK BOUNDARY

USE FOR

  • Spot a database lookup that is being run once per row inside a loop.
  • Catch memory that keeps growing because something is never cleaned up.
  • Point out a page that redraws far more of itself than the change required.
  • Rate a performance finding from critical to low based on its real-world impact.

This is the playbook your agent receives when the skill activates โ€” you don't need to read it to use the skill, but it's here to audit before installing.

Performance Review

When reviewing code for performance issues, check each category below. Reference the detailed checklist in references/performance-checklist.md.

Database & Queries

  • N+1 query patterns (queries inside loops)
  • Missing database indexes for frequently queried fields
  • Unbounded queries without LIMIT/pagination
  • SELECT * instead of selecting only needed columns
  • Missing connection pooling

Memory & Resources

  • Memory leaks: event listeners not removed, intervals not cleared, growing caches without bounds
  • Large objects held in memory unnecessarily
  • Unbounded arrays or maps that grow with usage
  • Missing cleanup in component unmount/destroy lifecycle

Rendering (Frontend)

  • Unnecessary re-renders (missing React.memo, useMemo, useCallback where appropriate)
  • Large component trees re-rendering for small state changes
  • Missing virtualization for long lists
  • Synchronous heavy computation blocking the main thread
  • Large bundle sizes from unnecessary imports

API & Network

  • Missing caching for frequently accessed, rarely changing data
  • Sequential API calls that could be parallelized
  • Missing pagination for large data sets
  • Over-fetching data (requesting more than needed)
  • Missing request deduplication

Algorithmic Complexity

  • O(nยฒ) or worse operations on potentially large datasets
  • Repeated computation that could be memoized
  • String concatenation in loops (use array join or template literals)
  • Unnecessary sorting or filtering passes

Severity Levels

  • ๐Ÿ”ด CRITICAL: Will cause performance degradation under normal load
  • ๐ŸŸ  HIGH: Will cause issues at scale
  • ๐ŸŸก MEDIUM: Optimization opportunity with measurable impact
  • ๐Ÿ”ต LOW: Minor optimization suggestion