OpenHarmony性能分析工具:https://developer.huawei.com/consumer/cn/agconnect/huawei-smartperf/
论文《ArkAnalyzer: The Static Analysis Framework for OpenHarmony》 项目地址: https://gitee.com/openharmony-sig/arkanalyzer
论文《Identifying Compiler and Optimization Level in Binary Code From Multiple Architectures》
OpenHarmony LLVM-PGO工具链文档: https://gitee.com/openharmony/third_party_llvm-project
鸿蒙OS部分开源应用项目地址:https://gitee.com/explore/harmonyos-app?order=recommend
赛题题目:基于PGO的OpenHarmony动态库(.so)优化自动化检测与验证系统
赛题说明:
OpenHarmony生态应用性能优化是提升用户体验的关键环节。其中,动态库(.so文件)作为核心计算模块,其执行效率直接影响应用响应速度、电池续航和设备发热。PGO(Profile-Guided Optimization)是一种强大的编译优化技术,通过收集程序实际运行数据来指导编译器优化,可为适合的动态库带来10%-15%的性能提升。 然而,在OpenHarmony生态中,PGO技术应用面临三大挑战: 收益评估困难:并非所有动态库都能从PGO中获得显著收益。计算密集型、分支逻辑复杂的库(如物理引擎、渲染器)通常收益显著,而IO绑定型或线性执行路径的库收益有限。开发者难以预先判断哪些库值得投入PGO优化成本; 测试用例构建复杂:有效的PGO优化依赖高质量的profile数据,需要测试用例覆盖关键执行路径。手动构建这些测试集耗时且往往不全面,导致次优的优化效果; 工程成本与收益平衡:PGO引入额外的构建步骤(插桩编译→收集profile→优化编译),增加了构建时间和CI/CD复杂度。对于收益有限的库,这种额外成本可能不值得。 本赛题要求参赛者开发一套自动化工具链,能够: 分析OpenHarmony应用中的动态库特征,预测PGO优化潜在收益; 自动识别高收益库并生成针对性测试用例,覆盖关键执行路径; 量化优化效果,提供性能提升报告和工程成本评估。 参赛者需在RK3568开发板上实际验证工具链效果,通过至少3个真实应用案例,证明工具能准确识别高收益库并带来≥10%的性能提升(以IPC提升、缓存命中率提高或功耗降低等指标衡量)。
赛题要求:
核心任务
开发自动化工具链实现以下功能中的一项或多项: PGO收益预测
测试用例管理
优化策略推荐
效果验证
技术要求
二进制分析:提取动态库的特征(可使用任何适合的工具) 动态追踪:采集性能数据,如热点函数、分支预测、缓存命中率等 预测模型:训练模型预测PGO收益,输入特征可包括: 二进制特征:分支密度、函数大小分布等 运行时特征:热点函数占比、分支预测失败率等 交付物 技术报告:详细说明技术方案、算法设计、实验结果和性能提升分析 可运行的技术原型:提供完整源代码和使用说明,确保评委可复现结果 输出内容: 优化分析报告:包含库收益预测和优先级排序 验证结果:通过实际编译参数调整验证优化建议,高收益库性能提升≥10%
评分标准:
评估维度 权重 评分细则 验证方法 收益预测准确性 35% - 预测与实际收益偏差<5%得25分
赛题联系人:
范刚 fan.gang@huawei.com
参考资料:
参赛资源支持:
赛题交流讨论链接:
https://www.chaspark.com/#/races/competitions/1136109649061687296