SKILL.md
readonlyread-only
name
argent-react-native-optimization
description
透過先進行效能剖析找出真正的瓶頸,再掃描機械性問題,來最佳化 React Native 應用程式。所有效能工作的進入點。當應用程式感覺卡頓、使用者要求最佳化、修復重新渲染、減少畫面卡頓或改善啟動速度時使用。委派給 argent-react-native-profiler 進行測量。
規則
- 不要使用散彈槍式的最佳化。先測量,定義什麼是「夠好」(目標指標 + 閾值),修復最嚴重的問題,然後誠實地重新測量。
- 快速掃描 — 使用
react-profiler-renders取得即時渲染計數表。立即找出熱點元件。 - 深度測量 — 載入
argent-react-native-profiler技能。react-profiler-start→ 互動 →react-profiler-stop→react-profiler-analyze。 - 檢查 — 針對每個發現使用
react-profiler-component-source。使用react-profiler-fiber-tree追蹤元件祖先與渲染成本。 - 驗證正確性 — 在修復前,重新收集上述步驟的資訊,並做出邏輯判斷,確認該方法是否值得執行。
- 修復 — 套用一個修復。在提交前使用
debugger-evaluate驗證。 - 重新測量 — 回報目標指標是否改善、退步或持平。檢查其他領域是否有回歸。如果沒有淨效益或無法接受的取捨,則還原。
- 剖析是為了發現,而不只是驗證。 使用剖析器找出靜態分析遺漏的問題,而不只是確認修復。
- 每個週期只做一個修復(針對架構變更)。 機械性批次修復(內聯樣式、索引鍵)可以分組 — 批次後重新剖析一次。當測量涉及裝置互動時,在第一次執行前將其記錄為流程(
argent-create-flow技能),以便後續所有週期重播相同的步驟。 - React Compiler:如果
react-profiler-analyze回報reactCompilerEnabled: true,除非你透過react-profiler-fiber-tree確認了編譯器跳出(缺少useMemoCache),否則不要提議使用useCallback/useMemo/React.memo。 - 子代理:第 1 和第 2 階段會派遣子代理 — 每個檔案一個用於 lint 結果,每個檢查項目一個用於語意檢查。子代理不能觸碰裝置 — 所有剖析和端到端驗證必須在主代理中進行。
流程
Lint 和語意掃描可以低成本地捕捉確定性問題。剖析則能找出靜態分析遺漏的執行時期瓶頸。兩者都要做。
將此檢查清單複製到你的待辦事項清單中:
最佳化進度:
- [ ] 第 1 階段:Lint 掃描(確定性 — 無需執行應用程式即可捕捉機械性問題)
- [ ] 第 2 階段:語意掃描(需判斷 — 記憶化、列表、動畫等)
- [ ] 第 3 階段:基準剖析(找出真正的瓶頸,修復最嚴重的問題)
- [ ] 第 4 階段:驗證無回歸(崩潰、錯誤、紅屏)
第 1 階段:Lint 掃描
在專案根目錄使用全面的 RN 效能規則集執行 ESLint 一次。派遣子代理修復結果 — 每個檔案一個。
規則集與程序請參閱 references/lint-rules.md。
第 2 階段:語意掃描
檢視每個需要判斷的領域 — 記憶化、列表渲染、動畫、非同步模式、effect 清理、狀態衛生、Context 架構。每個檢查項目派遣一個子代理。
完整檢查清單請參閱 references/semantic-checklist.md。
第 3 階段:視覺化剖析
- 載入
argent-react-native-profiler技能,啟動雙重剖析 - 執行關鍵使用者流程(導航使用者指定的畫面,或所有主要流程)
- 使用
react-profiler-analyze+native-profiler-analyze+profiler-combined-report進行分析 - 交叉比對剖析結果與第 1、2 階段的發現
- 修復影響最大的問題。架構變更後重新剖析;機械性修復可批次處理。如果修復後錄製的流程中斷(例如 UI 佈局改變),請遵循
argent-create-flow技能修復流程,而不是直接捨棄。
第 4 階段:驗證無回歸
導航範圍內的所有畫面與 UI 流程,確認每個畫面都能正常渲染且無錯誤。如果未指定範圍,則驗證整個應用程式 — 透過 argent-device-interact 涵蓋所有可到達的畫面。使用 debugger-log-registry 檢查執行時期錯誤,並截圖檢查是否有紅/黃色錯誤畫面。檢查修復是否引入回歸(例如重新渲染減少但 CPU 使用率升高,或不同畫面出現新的卡頓)。僅主代理執行。
全應用程式最佳化
- 第 1 階段:集中執行 lint(一個指令),派遣子代理並行修復每個檔案
- 第 2 階段:每個檢查項目一個子代理進行語意掃描
- 第 3 階段:主代理剖析問題最嚴重的畫面;由上而下修復架構問題
- 第 4 階段:主代理導航所有畫面,確認沒有崩潰
在整個流程結束後,再次執行 lint 以確認你的變更沒有引入新的問題。
這也有助於確保你沒有遺漏任何可以修復的問題。






