增量化工序级 CodeQL 分析
Incrementalizing Production CodeQL Analyses
AI总结:
本文研究生产级 CodeQL 静态分析的增量化,通过实证评估复用潜力并构建原型增量求解器,实现与代码变更规模成比例的更新时间。
摘要:
增量静态分析无需反复从头重新分析,而是仅对代码库进行一次完整分析,随后根据代码变更更新先前结果。尽管这听起来有望实现加速,但现实是,复杂静态分析通常会采用可能破坏增量性能的特性,例如过程间分析或上下文敏感性。在本研究中,我们着手探究增量化是否有助于为在 GitHub 上针对拉取请求提供自动化反馈的生产级 CodeQL 分析实现加速。我们首先通过测量实际代码库上的复用潜力,对该想法进行实证验证;随后构建了一个利用增量性的 CodeQL 原型增量求解器。我们报告的实验结果表明,我们确实能够实现与代码变更规模成比例的更新时间,同时也讨论了该原型的局限性。
英文摘要:
Instead of repeatedly re-analyzing from scratch, an incremental static analysis only analyzes a codebase once completely, and then it updates the previous results based on the code changes. While this sounds promising to achieve speed-ups, the reality is that sophisticated static analyses typically employ features that can ruin incremental performance, such as inter-procedurality or context-sensitivity. In this study, we set out to explore whether incrementalization can help to achieve speed-ups for production CodeQL analyses that provide automated feedback on pull requests on GitHub. We first empirically validate the idea by measuring the potential for reuse on real-world codebases, and then we create a prototype incremental solver for CodeQL that exploits incrementality. We report on experimental results showing that we can indeed achieve update times proportional to the size of the code change, and we also discuss the limitations of our prototype.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。