一句话:提出 SPARRI,通过 HTTP API 发布、检索与复用静态分析结果,最高提升分析性能 92%。
静态程序分析是理解软件系统的重要手段,近年分析设计趋向组合式、协作式与增量式,因而依赖已有结果来提升性能甚至精度。然而,尽管被分析软件大多由可复用组件构成,本领域仍缺乏系统化的结果复用机制。本文调研了 40 个最先进的静态分析实现,发现分析结果复用存在巨大潜力,并指出根本原因是缺少持久化与共享分析结果的系统化流程。为此,作者提出该流程并实现了原型系统 SPARRI,它提供 HTTP API 用于发布、搜索和复用静态分析结果。评估表明,使用 SPARRI 复用已有结果可将分析性能最高提升 92%。作者还讨论了该工作向经验软件研究、基准创建与工件评估等其他研究领域推广的潜力。
Static Program Analysis (SPA) has long been established as an important technique for gaining insights into software systems. Over the last years, analysis designers increasingly produced analyses that are compositional, collaborative, or incremental in nature - thus relying on some form of existing results to increase performance or even precision. However, systematic result reuse is still rare in this field even though the analyzed software is mainly composed of reusable software components. For this work, we study 40 state-of-the-art SPA implementations and find that there is a tremendous potential for reusing analysis results. We attribute this to the fact that there is no systematic process in place for persisting and sharing analysis results and propose such a process here to fill this gap. In this paper, we present SPARRI, a prototype implementation providing an HTTP API to publish, search, and reuse SPA results. Our evaluation shows that reusing existing results with SPARRI can improve analysis performance by up to 92%. Furthermore, we see potential in applying it to other research areas like empirical software studies. benchmark creation. and artifact evaluation.