光一样的少年|大规模下加速源代码分析( 六 )
图 7 DaCapo 数据集中的三种方法 。突出显示的部分是用于 PM 分析的相关声明
图 8 减少了 16%的 DaCapo 和 SourceForge 数据集的分析时间减少的箱形图以及图形大小指标
图 8 显示了所有 16 种分析的百分比减少和图形大小减少的箱线图 。 我们可以从箱线图中得出以下结论:i)在大多数分析中 , 分析时间的减少是可观的 , ii)对于非 RCFG 方法无益的分析 , 不会造成过多的开销 。 总而言之 , 我们的 16 组分析显示 , 在我们的方法能够实现的分析时间减少方面 , 差异很大 。 关于可以从我们的方法中受益的分析 , 我们可以看到 , 分析时间的减少既取决于分析的复杂性 , 也取决于与分析相关的程序的百分比 。
4.3 可扩展性在本节中 , 我们针对 16 种分析方法 , 在增加数据集大小的基础上 , 测量了 Baseline 和 RCFG 方法的可扩展性 。
4.4 减少的准确性和效率我们通过比较 RCFG 和基线方法的结果来评估减少的准确性 。 为了评估减少的效率 , 我们测量了 RCFG 方法不同组件的时间 。
4.5 静态分析的开销表 4 列出了这些开销以及分析的一些特征 , 还显示了我们的静态分析的总开销(Ttotal)以及其每个组成部分的开销 。 根据 16 次分析的中值 , 开销约为 300ms 。 这意味着 , 分析程序的编译时间增加了 300 毫秒 。 这些分析具有深层嵌套的分支和循环 , 这是其分析功能的一部分 , 这会增加路径数量和路径枚举时间 。 总而言之 , 当我们的静态分析探索分析中的路径时 , 具有许多路径的分析可能会产生不可忽略的开销 , 但是这种开销是一次性的编译开销 。
表 4 静态分析开销 。#LOC:分析代码行数 , #F:分析函数(或 CFG)数 , #P:分析路径数 , T1:CFG 建立时间 , T2:路径枚举时间 , T3:别名分析时间 ,T4:规则提取时间 , Ttotal = T1 + T2 + T3 + T4 。T1-T4 和 Ttotal 的单位是毫秒
4.6 有效性威胁有效性威胁在于我们的结果的适用性 。 我们研究了几种执行控制和数据流分析的源代码挖掘任务 , 并表明可以实现显着的加速(平均 40%) 。 但是 , 这些结果在构成任务方面可能与被研究对象完全不同 , 因此可能并不正确 。 为了减轻这种威胁 , 我们将需要进行 CFG 遍历的次数以及执行的操作纳入了复杂程度不同的任务 。
5 结论数据驱动的软件工程需要大规模挖掘和分析源代码存储库 , 而此活动可能会很昂贵 。 现有技术集中于利用分布式计算技术来解决该问题 , 但是随之而来的是计算资源需求的增加 。 这项工作提出了一种补充技术 , 该技术可以减少超大规模源代码挖掘任务执行的计算量 , 而不会影响结果的准确性 。 虽然所提出的技术已经显示出可以扩展执行方法级控制和数据流分析的大规模源代码挖掘任务 , 但未来工作的直接途径是将我们的技术扩展到可以扩展执行跨方法控制和数据流分析的挖掘任务(或项目级分析) 。 基于其他源代码中间表示形式(例如抽象语法树(AST) , 调用图(CG)和程序依赖图(PDG))的源代码挖掘任务也可以从我们技术的核心思想中受益 。 我们计划研究这些未来的方向 , 以进一步实现扩展大规模源代码挖掘任务的总体目标 。
本文由南京大学软件学院 2020 级硕士王旭翻译转述
推荐阅读
- 为准早晚称体重不一样,以哪个为准呢?
- 少年|《再见,少年》上影节双喜临门 张子枫张宥浩演绎少年殊途
- 拥有的都珍惜|还向战区难民伸出援手,缅甸首富的基金会就是不一样!除了抗疫
- 12306|像坐地铁一样坐火车 12306推出铁路e卡通
- 体育快进|快进街拍:黑色连衣裙,剩女的倔强,彰显不一样的风格
- 俄罗斯新冠疫苗将免费接种|俄罗斯新冠疫苗将免费接种 10月将大规模接种?
- 彬彬这厢有礼了 ChinaJoy篇二:看到的一些不一样的硬件
- 健康陕西人|2020年陕西省青少年篮球锦标赛在铜川开赛
- 「天使彦」你所渴望的爱情和我一样吗?
- 舞台|《少年之名》三公舞台团魂燃烧,伙伴情义全网泪目
