mcpField
1
1k-performance

1k-performance

github.com/onekeyhq開発2.5k63 回インストール今日更新
リポジトリ

1k-performance について

OneKey monorepoでReactおよびReact Nativeを開発する際のパフォーマンス最適化スキルです。リクエストのバッチ処理やリスト描画、UIをブロックする処理の回避方法を扱います。

主な機能

  1. 01並行リクエストのバッチ処理
  2. 02React Nativeブリッジの最適化
  3. 03リスト描画の指針
  4. 04メモ化のパターン
  5. 05重い処理のスケジューリング

活用シーン

  1. 01複数API呼び出しの並行数制限
  2. 02長いリストの描画改善
  3. 03不要なコンポーネント再描画の削減

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/onekeyhq/app-monorepo --skill 1k-performance

インストール後、Claude Code で/1k-performanceを入力して読み込まれたか確認します。

同梱ファイルreferences/rules/performance.md

詳細

OneKey のパフォーマンス最適化

OneKey モノレポ内の React/React Native アプリケーション向けのパフォーマンス最適化パターンとベストプラクティスです。

クイックリファレンス

カテゴリ主な最適化使用する場面
並行リクエスト3~5 件に制限し、executeBatched を使用複数の API 呼び出し、ネットワーク負荷の高い操作
ブリッジの最適化ブリッジをまたぐ回数を最小限にし、データをまとめるReact Native ブリッジのオーバーヘッド、iOS/Android
リストのレンダリングFlashList、windowSize={5}、content-visibility100 件以上の項目があるリスト
メモ化memo、useMemo、useCallback計算負荷の高い処理、再レンダリングの防止
負荷の高い操作InteractionManager、setTimeoutUI をブロックする操作

重要なパフォーマンスルール

❌ 禁止:並行リクエストが多すぎる
// ❌ BAD - Can freeze UI with 15+ requests
const requests = items.map(item => fetchData(item));
await Promise.all(requests);
✅ 正しい方法:並行数を制限したバッチ実行
async function executeBatched<T>(
  tasks: Array<() => Promise<T>>,
  concurrency = 3,
): Promise<Array<PromiseSettledResult<T>>> {
  const results: Array<PromiseSettledResult<T>> = [];
  for (let i = 0; i < tasks.length; i += concurrency) {
    const batch = tasks.slice(i, i + concurrency);
    const batchResults = await Promise.allSettled(
      batch.map((task) => task()),
    );
    results.push(...batchResults);
  }
  return results;
}

const tasks = items.map(item => () => fetchData(item));
await executeBatched(tasks, 3); // Max 3 concurrent

🚨 組み込みの最適化

すでに最適化済みです — 対応は不要です:

コンポーネント最適化詳細
ListViewwindowSize={5}表示される項目数を自動的に制限します
TabscontentVisibility: 'hidden'非アクティブなタブを非表示にします
DialogcontentVisibility: 'hidden'閉じている間は非表示にします

詳細ガイド

包括的なパフォーマンス最適化戦略については、performance.md を参照してください。

対象トピック:

  • 並行リクエストの制御
  • React Native ブリッジの最適化
  • 負荷の高い操作のオフロード
  • リストのレンダリング(windowSize、FlashList、content-visibility)
  • メモ化とコールバック
  • 状態更新の最適化
  • 画像の最適化
  • 非同期操作と競合状態
  • 実際の iOS AppHang の事例研究

関連スキル

  • /1k-coding-patterns - 一般的なコーディングパターンと規約
  • /1k-sentry - Sentry によるエラー分析(パフォーマンスの問題を含む)

コメント