摘要
性能bug是指代码中降低程序运行效率的缺陷.现有的检测工具只能查找特定类型的性能bug并且需要复杂的程序分析过程,因而缺乏通用性并且时空开销巨大.同时,有许多经典的克隆检测技术被用于一般性相似代码检测,但是它们只能检测高度相似的代码或者需要依赖训练集,使得它们难以用于在真实数据集中查找性能bug.基于此,通过构建带有标记token的代码模板,本文提出一种使用克隆检测技术来查找多种类型的性能bug的方法.通过对不同类型和频度的token标记不同的权重,本文提出的方法可以区分其重要性并因此提取出代码中的关键信息.在真实项目构成的数据集上的实验表明,本方法可以发现更多类型的性能bug同时比现有工具耗时更少.另一项实验也证明了本方法显著提升了基于token的克隆检测技术的检测能力,相比于现有的克隆检测方法更适合用于性能bug查找.
- 单位