通过消除冗余摘要提升路径敏感值流分析
软件工程
2025-02-13 v3
摘要
跟踪数据依赖关系中值流的价值流分析是检测广泛软件缺陷的常用技术。然而,随着高精度(即路径敏感性)要求的提升,规模问题常常恶化,因为函数摘要的实例化计算耗时且耗内存。我们观察到的主要原因是,针对函数 blindly 计算摘要而导致的冗余计算,即不论其是否与待检测的缺陷相关,都计算出所有摘要。为此,我们提出了一种能够有效识别并消除冗余摘要的首种方法,从而在不损害严谨性或效率的前提下,减少来自 callee 函数收集的摘要规模。我们在大型程序上的评估表明,所提识别算法可显著降低最先进的价值流分析的时间和内存开销分别降低 45% 和 27%。此外,识别算法在几乎 80% 的冗余摘要识别上表现出色,仅引入最小额外开销。 在最大的 \textit{mysqld} 项目中,识别算法以仅 17.31 秒的额外开销,将时间缩短 8107 秒(2.25 小时),实现时间节省与额外开销之比(即性能收益)为 468.48 。总体而言,本方法实现了平均 632.1 的性能提升。
引用
@article{arxiv.2502.04952,
title = {Boosting Path-Sensitive Value Flow Analysis via Removal of Redundant Summaries},
author = {Yongchao Wang and Yuandao Cai and Charles Zhang},
journal= {arXiv preprint arXiv:2502.04952},
year = {2025}
}