AgentSkillsCN

react-performance

React Native 性能优化指南。在处理性能问题、优化渲染、提升启动时间、调试内存泄漏、优化列表/动画,或分析捆绑包大小时使用。涵盖性能剖析、记忆化、React 编译器、并发 React、状态模式、FlatList 优化、Reanimated、原生线程和捆绑包优化。

SKILL.md
--- frontmatter
name: react-performance
description: React Native performance optimization guide. Use when working on performance issues, optimizing renders, improving startup time, debugging memory leaks, optimizing lists/animations, or analyzing bundle size. Covers profiling, memoization, React Compiler, Concurrent React, state patterns, FlatList optimization, Reanimated, native threading, and bundle optimization.

React Native Performance

How to Use This Skill

  1. Read ONLY this file first - Don't load references yet
  2. Use Quick Diagnosis table to identify the ONE relevant reference
  3. Load ONLY that reference - Never load multiple references at once
  4. If user's problem is unclear - Ask clarifying questions before loading any reference

⚠️ Each reference file is 5-10KB. Loading multiple files wastes context. Be surgical.

Comprehensive guide for optimizing React Native applications. Always measure before optimizing - use profiling tools to identify actual bottlenecks.

Quick Diagnosis

SymptomStart With
Too many re-rendersrerender-optimization.md
Slow lists/scrollinglist-optimization.md
App takes long to startstartup-optimization.md
Memory keeps growingmemory-management.md
Animations dropping framesanimation-performance.md
Bundle too largebundle-optimization.md

Don't know where the problem comes from?

Ask the user first:

  • What feels slow? (startup, scroll, animation, interaction)
  • When does it happen?
  • Which screen/component?

Then load profiling.md ONLY if you need help guiding them through profiling.

Reference Files

Loading strategy: Pick ONE file based on the diagnosed symptom. Never preload "just in case".

🔬 Investigation

  • profiling.md - React DevTools, JS Profiler, Flashlight, Perf Monitor. Use to identify unknown bottlenecks.

🧠 Memory

⚛️ React Optimization

📱 Runtime Performance

🚀 Startup & Bundle

🔧 Native Layer

Performance Targets

MetricTargetTool
FPS60 (ideally 120 on capable devices)Perf Monitor, Flashlight
TTI< 2s cold startNative profilers
JS Frame< 16ms (8ms for 120fps)JS Profiler
MemoryStable over time (no growth)Heap snapshots

Optimization Workflow

  1. Measure - Profile the app, identify the actual bottleneck
  2. Isolate - Reproduce the issue in a minimal scenario
  3. Fix - Apply targeted optimization from relevant reference
  4. Verify - Re-measure to confirm improvement
  5. Monitor - Set up continuous performance tracking

Key Principles

  • Measure first: Never optimize based on assumptions
  • 80/20 rule: 80% of issues come from 20% of code
  • JS thread < 16ms: Keep frame budget for 60 FPS
  • Minimize bridge crossing: Batch operations, use native drivers
  • Virtualize large lists: Never render off-screen content
  • Defer non-critical work: Use startTransition and lazy loading