光一样的少年|大规模下加速源代码分析
引用:Upadhyaya G , Rajan H . On Accelerating Source Code Analysis At Massive Scale[J]. IEEE Transactions on Software Engineering, 2017, PP(99):669-688.
摘要数据驱动软件工程(SE)技术的成功 , 使我们发现了许多不同的应用 , 例如在缺陷预测、规范推理、大规模挖掘和分析源代码存储库需求的应用数量均显着增加 。 但是 , 对于当今某些无法解决 SE 问题的数据驱动解决方案而言 , 大规模分析源代码仍然很昂贵 。 现有技术集中于利用分布式计算来解决该问题 , 但是随之而来的是计算资源需求的增加 。 这项工作提出了一种减少超大规模源代码挖掘任务执行计算量的技术 , 尤其是利用控制和数据流分析的任务 。 我们的关键思想是在运行挖掘任务之前分析挖掘任务 , 以识别并删除源代码中不相关的部分 。 我们展示了我们对挖掘和分析大量源代码控制流图集合的见解 。 我们使用 16 个经典的控制/数据流分析(它们是挖掘任务的典型组成部分)和 700 万个 CFG 进行评估 , 结果表明 , 我们的技术平均可以将任务计算时间减少 40% 。 我们的案例研究证明了我们的技术在大规模源代码挖掘任务中的适用性 。
1 介绍最近 , 分析大型源代码存储库以解决广泛的软件工程问题激发了我们极大的兴趣并获取了相应的进展 。 大规模执行源代码挖掘和分析的方法可能很昂贵 。 幸运的是 , 现有的工作集中是在利用分布式计算技术来加速超大规模源代码挖掘 , 但是随之而来的是计算资源需求的增加 。 通过增加更多的 CPU 来提高基础架构的功能当然是可行的 , 但是非盈利基础架构例如 Boa 受到其资源的限制 , 而在这种任务中使用商业云可能会非常昂贵 。
在这项工作中 , 我们提出了一种补充技术 , 该技术可以在不需要额外计算资源的情况下加速超大型挖掘任务 。 给定一个挖掘任务和需要运行挖掘任务的程序的超大型数据集 , 我们的技术将首先分析挖掘任务 , 以提取与该挖掘任务相关的部分输入程序信息 , 然后使用此信息进行预分析 , 从而在输入程序上运行挖掘任务之前 , 先从输入程序中删除不相关的部分 。 我们的技术通过分析挖掘任务源代码自动提取有关语句的信息 , 并在运行挖掘任务之前从输入程序中删除所有不相关的语句 。
【光一样的少年|大规模下加速源代码分析】贡献 。 总而言之 , 我们的论文做出了以下贡献:
- 我们提出了用于扩展源代码挖掘任务的加速技术 , 该任务可分析数百万个控制流图 。
- 我们提供了一个静态分析 , 该分析分析了挖掘任务 , 以自动提取与挖掘任务相关的部分源代码信息 。
- 我们的证明 , 通过在运行挖掘任务之前对源代码进行轻量级的预分析 , 以识别并删除不相关的部分 , 可以在不牺牲挖掘结果准确性的情况下极大地加快整个挖掘过程 。
- 我们已经在 Boa 领域专用语言和基础架构中实现了用于超大规模采矿的技术[10] 。
- 我们的评估表明 , 对于极少的挖掘任务 , 我们的技术可以将任务计算时间减少多达 90% , 而在我们的 16 种分析中 , 平均可以减少 40% 。
推荐阅读
- 为准早晚称体重不一样,以哪个为准呢?
- 少年|《再见,少年》上影节双喜临门 张子枫张宥浩演绎少年殊途
- 拥有的都珍惜|还向战区难民伸出援手,缅甸首富的基金会就是不一样!除了抗疫
- 12306|像坐地铁一样坐火车 12306推出铁路e卡通
- 体育快进|快进街拍:黑色连衣裙,剩女的倔强,彰显不一样的风格
- 俄罗斯新冠疫苗将免费接种|俄罗斯新冠疫苗将免费接种 10月将大规模接种?
- 彬彬这厢有礼了 ChinaJoy篇二:看到的一些不一样的硬件
- 健康陕西人|2020年陕西省青少年篮球锦标赛在铜川开赛
- 「天使彦」你所渴望的爱情和我一样吗?
- 舞台|《少年之名》三公舞台团魂燃烧,伙伴情义全网泪目
