站长友情链接平台,商业网站运营成本,给装修公司做推广的网站,毕节市生态文明建设网站1. ArkTs 高性能编程
1.1 ArkTs 高性能编程规则
1.1.1 限制一些 TypeScript 的特性#xff0c;比如需要不支持属性的动态变更、变量或参数需要明确的类型声明和返回值声明等。1.1.2 禁用 ts-ignore、ts-expect-error 等屏蔽编译校验的命令。1.1.3 开启 TypeScript 的严格模式…1. ArkTs 高性能编程
1.1 ArkTs 高性能编程规则
1.1.1 限制一些 TypeScript 的特性比如需要不支持属性的动态变更、变量或参数需要明确的类型声明和返回值声明等。1.1.2 禁用 ts-ignore、ts-expect-error 等屏蔽编译校验的命令。1.1.3 开启 TypeScript 的严格模式比如需要严格判空、严格函数类型检查、严格成员初始化等提高代码的质量和可维护性避免一些常见错误。1.1.4 ArkTs 不支持 any 和 unknown 类型。
1.2 使用 AOT 模式对应用进行编译优化 AOT 即提前编译能够在 Host 端将字节码提前编译成 Target 端可运行的机器码这样字节码可以获得充分编译优化放到 Target 端运行时可以获得加速。
2. 提升应用启动和响应速度
2.1 提升应用冷启动的方法
2.1.1 缩短应用进程创建和初始化阶段耗时 设置合适分辨率的 startWindowIcon2.1.2 缩短 Application 和 Ability 初始化阶段耗时 减少首页 Ability 或者 Page 中 import 的模块2.1.3 缩短 Ability 生命周期阶段耗时 使用异步加载避免阻塞生命周期。2.1.4 缩短加载绘制首页阶段耗时 延迟加载使用 LazyForEach 懒加载形式减少首页数据的加载做一些冗余加载的消除提升首桢绘制的速度。
2.2 使用异步加载 异步接口或异步加载
2.3 使用动态加载 使用 async await 动态加载 import 模块。
2.4 延迟加载 长列表场景中使用 LazyForEach 代替 ForEach。
2.5 使用缓存 当使用 LazyForEach 时可以搭配使用 .cachedCount() 方法自定义控制列表的缓存数量实现更优的滑动体验。
3. 减少丢帧卡顿
3.1 避免在主线程上执行耗时任务 可以将耗时操作放在 TaskPool 或者 Worker 等后台线程这俩个系统的子线程运行能力在子线程中执行。
3.2 减少渲染进程的冗余开销 使用资源图代替绘制、合理使用 .renderGroup(true)系统机制、尺寸位置设置尽量使用整数可以减少渲染所需时间从而减少丢帧卡顿。 组件转场动画推荐使用 transtion。
3.3 减少视图嵌套层级
3.4 组件复用配合 LazyForEach 组件复用功能使用 Reusable 装饰器 标记这个组件后实现 aboutToReuse(params) 方法把需要更新的信息复制到需要复用的这个组件里面。
3.5 精确控制状态变量的关联组件数 推荐使用状态变量和组件一一绑定的方式以数据的变更驱动组件的刷新声明式。 合理控制状态更新范围避免关联刷新较大范围或者渲染较慢的组件。
3.6 在对象上谨慎使用状态变量关联 Prop 是深拷贝ObjectLink 是浅拷贝使用效果相同的场景下优先使用 ObjectLink 的方式较少系统内存开销。
4. 使用性能调优工具