react-native-performance について
React Native アプリの性能を調査・改善する開発者向けのリファレンススキルです。描画、起動、バンドル、ネイティブ性能、メモリ、分析ツールを扱います。
主な機能
- 01FPS と再レンダーの指針
- 02バンドルサイズ削減手法
- 03TTI の測定方法
- 04ネイティブ性能とスレッド
- 05メモリリークのパターン
- 06プロファイリングツールの情報
活用シーン
- 01FPS や起動時間の基準測定
- 02バンドル肥大化の原因調査
- 03JavaScript またはネイティブのメモリリーク調査
- 04アプリ分析ツールの選定
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ maikotrindade/ awesome-react-native-skills --skill react-native-performanceインストール後、Claude Code で/react-native-performanceを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/best-practices-profiling.mdcore-bundle-size.mdcore-fps-rerenders.mdfeatures-memory.mdfeatures-native-performance.mdfeatures-tti.md詳細
React Native のパフォーマンス
詳細なパフォーマンスリファレンスです。 React Native のパフォーマンスに関する主要な情報源です。FlatList のチューニング、メモ化、Hermes、expo-image、FPS の測定、バンドルのツリーマップ分析、Hermes mmap、R8 Android、16 KB ページサイズのアラインメント、ビューのフラット化、ネイティブスレッド処理、JNI メモリのパターン、プロファイリングツールチェーンを扱います。
Fabric/JSI/TurboModules のアーキテクチャ概要については、
react-native-core/features-new-architecture.mdを参照してください。
コアリファレンス
| トピック | 説明 | リファレンス |
|---|---|---|
| FPS と再レンダリング | FPS の測定、profile-react、React Compiler(Expo SDK 54+)、アトミックな状態管理、Concurrent React、Reanimated ワークレット(v3/v4) | core-fps-rerenders |
| バンドルサイズ | アプリサイズと JS バンドルの削減 — Ruler、Emerge、source-map-explorer、Expo Atlas、ツリーシェイキング、バレルエクスポート、R8、アセットカタログ、Hermes mmap、コード分割 | core-bundle-size |
機能
| トピック | 説明 | リファレンス |
|---|---|---|
| インタラクティブになるまでの時間 | TTI の測定方法、コールドスタートのパイプラインマーカー、react-native-performance | features-tti |
| ネイティブパフォーマンス | TurboModule のスレッド処理、同期と非同期、ビューのフラット化、JS ポリフィルよりネイティブ SDK を優先、16 KB のアラインメント、プラットフォームのセットアップ | features-native-performance |
| メモリ | JS のリーク検出、ネイティブの参照サイクル、JNI 参照、スマートポインター、よくあるリークパターン | features-memory |
ベストプラクティス
| トピック | 説明 | リファレンス |
|---|---|---|
| プロファイリングツール | DevTools のフレームグラフ、Flashlight、Xcode Instruments、Android Studio Profiler、Perfetto、バンドルアナライザー | best-practices-profiling |
主な推奨事項
- まず必ず測定してください — ベースラインなしで最適化してはいけません(FPS/TTI には Flashlight、バンドルには source-map-explorer を使用)
- Hermes mmap は RN 0.79+ で削除されました — JS バンドルは常駐メモリとなり、バンドルサイズが起動時のメモリに直接影響します
- TurboModules — 高速な処理には同期メソッドを優先し、処理がスレッドをまたぐ場合にのみ非同期を使用してください
- React Compiler は Expo SDK 54+ でオプトインできます(
experiments.reactCompiler: true)。大半のuseMemo/useCallbackを置き換えます - リファクタリングの前にプロファイリングしてください — パフォーマンス改善の 80% は、マイクロ最適化ではなく、ウォーターフォール、コストの高いレンダリング、肥大化したバンドルの削減によって得られます
- Reanimated v3 は安定版、v4 はオプトイン/ベータ版です — プロジェクトごとにどちらか一方を選び、混在させないでください
コメント
Markdown 対応