用途:针对 OneKey 移动端 iOS 应用的性能回归修复与性能提升,围绕 Home tokens 刷新等关键指标进行系统化诊断与优化。
主要能力:建立性能基线;运行受控性能测量(自动跑 3 次并取中位数聚合);用 derive-session 分析会话数据,定位 slowFunctions、homeRefreshTokens、jsblock、repeatedCalls、keyMarks 等瓶颈;做定向代码改动;按阈值验证改进;记录全部改动与结果。关键指标包括 tokensStartMs、tokensSpanMs、functionCallCount,均为越低越好。判定标准:时间指标改善 ≥10% 为 SUCCESS;时间不变但函数调用减少 ≥20% 为 MINOR_IMPROVEMENT;两者均未达到则回退改动。
使用方式:先选基线会话,可用 cat ~/perf-sessions/sessions.overview.jsonl | jq -r '[.sessionId, .createdAt, .marks["Home:refresh:done:tokens"]] | @tsv' | tail -20 列出;再用 node development/performance-server/cli/derive-session.js <baseline-sessionId> --pretty --output /tmp/perf-baseline-derived.json 分析。每轮迭代运行 node development/perf-ci/run-ios-perf-detox-release.js,从 development/perf-ci/output/<jobId>/report.json 的 agg 字段读取聚合指标,必要时对 detox/runs.json 中的各 sessionId 逐个 derive-session。每轮只做一处定向改动,可用 packages/shared/src/performance/perfMark.ts 的 perfMark 加标记,命名格式为 <Component>:<action>:<phase>。最多迭代 10 次,每轮在子代理中运行以避免上下文膨胀。
适用场景:修复性能回归、优化 Home 刷新关键路径、减少函数调用与主线程阻塞。
限制:仅面向 OneKey iOS 移动端;依赖 perf-ci 与 performance-server 工具链及本地会话数据;每次性能运行耗时较长(构建加 3 次运行);未达 SUCCESS 或 MINOR_IMPROVEMENT 不得提交改动;需警惕指标间权衡。