核心用法
ohos-react-native-performance 是一套面向 OpenHarmony 平台 React Native(RNOH) 的性能优化静态检查技能,源自 OpenHarmony-SIG 官方性能调优文档。它通过可落地的规则前缀体系(rnoh-render-*、rnoh-bundle-*、rnoh-lifecycle-* 等),为开发者提供从代码编写到构建发布的全链路性能检查能力。
五大规则类别
| 优先级 | 类别 | 典型场景 |
|--------|------|---------|
| **CRITICAL** | 渲染优化 | `setState` 合并、避免重复渲染、PureComponent/Memo 使用、状态不可变更新 |
| **HIGH** | Bundle & 原生配置 | `--dev=false --minify=true` 生产构建、Hermes 字节码(HBC)、Release 模式、BiSheng 编译器 |
| **HIGH** | 生命周期与监控 | `RNAbility` 的 `onForeground/onBackground` 管理、FCP 首帧监控 |
| **MEDIUM** | TurboModule | 耗时模块(JSON/加密/图片/网络)放 Worker 线程执行 |
| **MEDIUM** | 列表与 Key | 稳定 key 策略,避免 index 作为 key |
典型应用场景
- 代码审查时扫描
setState滥用、props 重复创建、组件拆分合理性 - CI/CD 阶段校验 bundle 构建参数(dev/minify/HBC)是否符合生产要求
- TurboModule 设计阶段识别主线程阻塞风险
- 性能分析前置:配合 Trace、React Marker、FCP 等指标进行优化验证
显著优点
1. 官方权威背书:直接源自 OpenHarmony-SIG ohos_react_native 性能文档,规则与平台实现深度绑定
2. 场景化分级:CRITICAL/HIGH/MEDIUM 三级优先级,资源紧张时可聚焦高影响规则
3. 前缀化规则体系:rnoh-* 命名空间清晰,便于集成到 ESLint、CodeReview 工具链
4. 双端覆盖:既包含 JS/TS 层渲染优化,也涵盖原生构建配置(CMake、BiSheng、Hermes)
5. 生产导向:明确区分 Dev/Release 构建差异,降低线上性能事故风险
潜在缺点与局限性
- 平台专属性强:规则仅适用于 OpenHarmony 的 React Native 运行时,跨平台(Android/iOS)项目需额外配置
- 静态检查边界:无法捕获运行时动态性能问题(如特定机型上的 JS 线程阻塞),需配合 Trace 工具使用
- 文档依赖:部分规则需查阅
rules/目录下的详细说明,快速上手成本略高 - Worker 线程复杂度:TurboModule 的 Worker 调度需要开发者理解 RNOH 线程模型,误用可能导致逻辑错误
适合人群
- OpenHarmony RN 应用开发者:需系统性提升应用帧率、启动速度、内存占用
- 性能专项工程师:负责 RNOH 项目性能基线建立与 CI 卡口配置
- 架构师/Reviewer:在代码审查中建立可量化的性能检查清单
常规风险
- 构建参数误配:忘记
--dev=false或 HBC 会导致线上包体膨胀、执行效率下降 - 并发模式假设:RNOH 默认
concurrentRoot: true,若手动关闭会丧失 Automatic Batching 性能收益 - Worker 线程滥用:ImageLoader 等 UI 相关操作放入 Worker 可能引发渲染异常
- 生命周期遗漏:
RNAbility未正确转发前台/后台事件,可能导致资源泄漏或统计失真
安全等级说明
本技能仅提供静态检查规则与文档指引,不执行代码、不访问网络、不收集数据,属于纯知识型技能。但需注意:若将其集成到自动化构建流程,应确保 rules/ 文件来源可信,防止供应链污染。