Update README.md
OpenHarmony作为分布式开源操作系统,为多设备互联提供了统一的运行环境。然而,应用程序在OpenHarmony上运行时,可能会出现代码逻辑错误、异常崩溃、内存泄漏、线程竞争、安全漏洞等问题,影响应用的稳定性和安全性。 ArkAnalyzer(方舟分析器)是OpenHarmony生态中的程序分析工具底座,提供代码静态分析和运行时分析,可检测未初始化变量、空指针引用(NPE)、数组越界、死锁、资源泄漏等问题。方舟分析器目前已在 OpenHarmony 社区 启动开源开发活动,社区开发者可以参与贡献,共同优化该工具。具体信息可访问 OpenHarmony 社区的官方仓库: https://gitee.com/openharmony-sig/arkanalyzer 本赛题要求参赛者基于方舟分析器,优化应用代码分析的性能,提升大规模代码分析的内存利用率、执行速度和问题检测能力。参赛者可选择以下两个优化方向之一,并提供优化算法、分析报告、优化代码、可执行工具。 方向一:优化方舟分析器的代码加载与内存管理 目标: 方舟分析器在分析海量代码时,可能存在内存占用过大、加载效率低 的问题,导致处理大规模应用时出现OOM(内存溢出)或分析速度变慢。 本任务要求参赛者优化方舟分析器的代码加载方式,减少分析时的内存占用,提升大规模代码处理能力。
优化后的代码加载占用内存减少(越少得分越高)。 优化后的代码加载速度提升(越快得分越高)。 示例优化方案: 支持分段内存加载:避免一次性将全部代码加载到内存中,改为按需加载,减少内存占用。 优化数据结构:减少冗余数据存储,提高内存利用率。 支持并行加载与分析:利用多线程/多进程技术,使代码加载和分析并发进行,提高效率。 缓存优化:使用增量分析,避免重复分析相同代码,减少不必要的计算开销。 示例优化结果: 参赛者优化了方舟分析器的代码加载模块,使其单次最大内存占用减少50%,代码分析速度提高50%。 通过分片加载代码,在分析1000+ OpenHarmony 应用时,最大内存占用减少 50%。 方向二:优化方舟分析器的代码分析算法 目标: 现有的方舟分析器在处理大规模代码时,可能存在分析速度慢、误报多、检测不全等问题。本任务要求参赛者优化代码分析算法,提高检测速度,减少误报,并找到更多真实问题。 评分标准: 优化后的代码分析速度提升(比方舟分析器当前 API 运行更快)。 优化后的检测准确率提升(减少误报/漏报,找到更多真实Bug)。 示例优化方案: 并行分析优化:使用多线程/分布式分析,提升海量代码的分析速度。 智能Bug过滤:基于机器学习/大模型等识别高置信度Bug,减少误报。 增强数据流分析:改进方舟分析器的数据流分析,加快分析收敛,提高检测能力。 优化静态分析规则:增强指针分析、变量依赖分析、程序切片,让分析更精准。 示例优化结果: 参赛者优化了方舟分析器的数据流分析算法,使其检测时间减少50%,误报率降低50%。 通过引入分布式分析框架,使方舟分析器在10000+OpenHarmony代码文件中分析速度提升5倍。 参赛者可以选择任意一个感兴趣的方法进行探索。参赛者需提供量化优化结果(Bug 检测准确率、崩溃率降低、内存优化数据),并提交分析报告、优化代码、可执行工具。
本次比赛基于官方提供的OpenHarmony开源应用数据集(基于参考资料[2]),所有优化方案将在相同的测试集上运行,并与方舟分析器官方API进行对比,确保公平、公正、可量化。 参赛者需提交完整的交付物,包括:Demo 演示、评估文档,实现代码及实验结果分析报告等。评估文档需包含详细的量化分析,例如 Bug检测准确率提升50%以上、内存泄漏检测覆盖率达到95%、崩溃率降低60%等关键指标,并提供优化前后的数据对比,确保改进效果可验证。最终交付物需清晰展示方案的有效性,并证明在测试集上的性能提升。如果交付物品无法验证方案的有效性,将无法参与后续的奖项评比。 评分维度 任务 1 任务 2 权重 优化效果 - 内存占用减少X%(对比方舟API)
胡晗 hu.han@huawei.com
ArkAnalyzer 官方文档:https://gitee.com/openharmony-sig/arkanalyzer OpenHarmony开源组件库:https://gitee.com/explore/harmonyos-app OpenHarmony 代码仓库:https://gitee.com/openharmony 华为开发文档:https://developer.huawei.com/
OpenHarmony社区:基于Windows PC,不提供额外硬件
https://www.chaspark.com/#/races/competitions/1136110656905601024
©Copyright 2023 CCF 开源发展委员会 Powered by Trustie& IntelliDE 京ICP备13000930号
赛题题目:基于方舟分析器的OpenHarmony应用代码分析优化
赛题说明:
OpenHarmony作为分布式开源操作系统,为多设备互联提供了统一的运行环境。然而,应用程序在OpenHarmony上运行时,可能会出现代码逻辑错误、异常崩溃、内存泄漏、线程竞争、安全漏洞等问题,影响应用的稳定性和安全性。 ArkAnalyzer(方舟分析器)是OpenHarmony生态中的程序分析工具底座,提供代码静态分析和运行时分析,可检测未初始化变量、空指针引用(NPE)、数组越界、死锁、资源泄漏等问题。方舟分析器目前已在 OpenHarmony 社区 启动开源开发活动,社区开发者可以参与贡献,共同优化该工具。具体信息可访问 OpenHarmony 社区的官方仓库: https://gitee.com/openharmony-sig/arkanalyzer 本赛题要求参赛者基于方舟分析器,优化应用代码分析的性能,提升大规模代码分析的内存利用率、执行速度和问题检测能力。参赛者可选择以下两个优化方向之一,并提供优化算法、分析报告、优化代码、可执行工具。 方向一:优化方舟分析器的代码加载与内存管理 目标: 方舟分析器在分析海量代码时,可能存在内存占用过大、加载效率低 的问题,导致处理大规模应用时出现OOM(内存溢出)或分析速度变慢。 本任务要求参赛者优化方舟分析器的代码加载方式,减少分析时的内存占用,提升大规模代码处理能力。
评分标准:
优化后的代码加载占用内存减少(越少得分越高)。 优化后的代码加载速度提升(越快得分越高)。 示例优化方案: 支持分段内存加载:避免一次性将全部代码加载到内存中,改为按需加载,减少内存占用。 优化数据结构:减少冗余数据存储,提高内存利用率。 支持并行加载与分析:利用多线程/多进程技术,使代码加载和分析并发进行,提高效率。 缓存优化:使用增量分析,避免重复分析相同代码,减少不必要的计算开销。 示例优化结果: 参赛者优化了方舟分析器的代码加载模块,使其单次最大内存占用减少50%,代码分析速度提高50%。 通过分片加载代码,在分析1000+ OpenHarmony 应用时,最大内存占用减少 50%。 方向二:优化方舟分析器的代码分析算法 目标: 现有的方舟分析器在处理大规模代码时,可能存在分析速度慢、误报多、检测不全等问题。本任务要求参赛者优化代码分析算法,提高检测速度,减少误报,并找到更多真实问题。 评分标准: 优化后的代码分析速度提升(比方舟分析器当前 API 运行更快)。 优化后的检测准确率提升(减少误报/漏报,找到更多真实Bug)。 示例优化方案: 并行分析优化:使用多线程/分布式分析,提升海量代码的分析速度。 智能Bug过滤:基于机器学习/大模型等识别高置信度Bug,减少误报。 增强数据流分析:改进方舟分析器的数据流分析,加快分析收敛,提高检测能力。 优化静态分析规则:增强指针分析、变量依赖分析、程序切片,让分析更精准。 示例优化结果: 参赛者优化了方舟分析器的数据流分析算法,使其检测时间减少50%,误报率降低50%。 通过引入分布式分析框架,使方舟分析器在10000+OpenHarmony代码文件中分析速度提升5倍。 参赛者可以选择任意一个感兴趣的方法进行探索。参赛者需提供量化优化结果(Bug 检测准确率、崩溃率降低、内存优化数据),并提交分析报告、优化代码、可执行工具。
赛题要求:
评分标准:
本次比赛基于官方提供的OpenHarmony开源应用数据集(基于参考资料[2]),所有优化方案将在相同的测试集上运行,并与方舟分析器官方API进行对比,确保公平、公正、可量化。 参赛者需提交完整的交付物,包括:Demo 演示、评估文档,实现代码及实验结果分析报告等。评估文档需包含详细的量化分析,例如 Bug检测准确率提升50%以上、内存泄漏检测覆盖率达到95%、崩溃率降低60%等关键指标,并提供优化前后的数据对比,确保改进效果可验证。最终交付物需清晰展示方案的有效性,并证明在测试集上的性能提升。如果交付物品无法验证方案的有效性,将无法参与后续的奖项评比。 评分维度 任务 1 任务 2 权重 优化效果 - 内存占用减少X%(对比方舟API)
赛题联系人:
胡晗 hu.han@huawei.com
参考资料:
参赛资源支持:
赛题交流讨论链接:
https://www.chaspark.com/#/races/competitions/1136110656905601024