HarmonyOS性能优化——并发能力使用

并发能力使用

应用中的并发优化是在响应用户操作时,确保主线程仅执行UI绘制任务,将非UI的耗时任务分配给其他线程或延迟处理。通过多线程异步技术,充分利用多核处理器的能力,提高应用程序的并发处理能力,减少用户等待时间,确保用户界面的响应流畅。

使用多线程能力

创建自定义组件后,在执行build函数前,将先调用aboutToAppear()生命周期回调函数。如果在此函数中执行耗时操作,将阻塞UI渲染并增加主线程负担。对于不需等待结果的高耗时任务,可以使用多线程处理,通过并发方式避免主线程阻塞,或者将耗时操作改为异步并发或延后处理,确保主线程优先处理组件绘制逻辑。ArkTS提供了TaskPool和Worker两种多线程并发方案,具体对比请参阅TaskPool和Worker的对比实践。

使用异步能力

Promise和async/await提供异步并发能力,是标准的JS异步语法。异步代码会被挂起并在之后继续执行,同一时间只有一段代码执行,适用于单次I/O任务的场景开发,例如一次网络请求、一次文件读写等操作。无需另外启动线程执行。可以把耗时操作的执行从同步执行改为异步或者延后执行,比如使用setTimeOut执行耗时操作实现应用冷启动优化。

多线程间通信

对象/方法在跨线程传递时均会涉及到其序列化和反序列化的过程。当对象本身较大且结构复杂时,序列化/反序列化的耗时就会增加,从而影响应用运行的整体性能。使用异步能力Sendable对象可以实现数据在多线程间的引用传递,具体使用场景请参阅Sendable使用场景与案例分析。

相关推荐
打工仔折腾 AI9 小时前
Docker镜像分层与卷挂载到底怎么工作:一次文件系统层面的实测分析
运维·人工智能·后端·python·docker·容器·性能优化
xq952711 小时前
ArkTS Component Generator 插件横空出世
harmonyos
Fate_I_C11 小时前
Capacitor 插件鸿蒙化实战:@capacitor/device 从安装到模拟器验证全记录
华为·harmonyos
Cx330❀12 小时前
Qt 多线程深度解析:从底层原理到 UI 线程与同步实战
开发语言·qt·ui·搜索引擎·性能优化·图形渲染
cyf3115 小时前
RDMA 写操作带宽性能建模与参数敏感性分析
性能优化·rdma·rocev2
2501_9197490316 小时前
华为鸿蒙免费记账与生活统计APP—小羊统计
华为·生活·harmonyos·鸿蒙
Fate_I_C16 小时前
Capacitor 应用鸿蒙化实战:用 hionic 把 React 应用跑在 OpenHarmony 上
react.js·华为·harmonyos
SuperHeroWu717 小时前
华为云码道接入 DevEco CLI 鸿蒙应用开发AICoding
华为·华为云·harmonyos
夜之眷属17 小时前
记一次战斗服务器 CPU 打满 100% 且“无法恢复“的排查
java·linux·运维·服务器·后端·性能优化