Openharmony性能分析之应用关联启动慢
背景: 在A应用中启动关联的B应用,比在桌面冷启动B应用慢60~400ms,例如: 1. 在相机中启动图库比桌面冷启动图库慢439ms。 2. 在联系人中启动callui比桌面冷启动callui慢61ms。 原因分析 1. 分析trace,B应用保存ability状态,拿token被A应用快照阻塞 2. 分析代码 A应用退到后台最小化获取快照需要持锁managerLock_B应用保存ability
·
背景:
在A应用中启动关联的B应用,比在桌面冷启动B应用慢60~400ms,例如:
1. 在相机中启动图库比桌面冷启动图库慢439ms。
2. 在联系人中启动callui比桌面冷启动callui慢61ms。
原因分析
1. 分析trace,B应用保存ability状态,拿token被A应用快照阻塞
2. 分析代码
A应用退到后台最小化获取快照需要持锁managerLock_
B应用保存ability状态,拿token时,也需要这把managerLock_,导致B应用主线程阻塞。
方案优化
A应用退到后台最小化获取快照保存流程和B应用状态更新,没有强耦合,建议去掉A应用快照保存这把锁。
社区提交链接:https://gitee.com/openharmony/ability_ability_runtime/pulls/9151/files
更多推荐
已为社区贡献13条内容
所有评论(0)