Skip to main content
QUICK REVIEW

[论文解读] A Comprehensive Survey of Benchmarks for Automated Improvement of Software's Non-Functional Properties

Aymeric Blot, Justyna Petke|arXiv (Cornell University)|Dec 16, 2022
Cloud Computing and Resource Management被引用 4
一句话总结

本文对用于自动化提升软件非功能属性的基准进行了全面调查,分析了来自主要存储库的386篇相关论文。研究发现,执行时间是最常被优化的属性(62%),静态分析占主导地位(53%),SPEC是使用最广泛的基准(33篇论文),而多目标优化和多样化语言支持(如Python、JavaScript)仍处于研究空白。

ABSTRACT

Performance is a key quality of modern software. Although recent years have seen a spike in research on automated improvement of software's execution time, energy, memory consumption, etc., there is a noticeable lack of standard benchmarks for such work. It is also unclear how such benchmarks are representative of current software. Furthermore, frequently non-functional properties of software are targeted for improvement one-at-a-time, neglecting potential negative impact on other properties. In order to facilitate more research on automated improvement of non-functional properties of software, we conducted a survey gathering benchmarks used in previous work. We considered 5 major online repositories of software engineering work: ACM Digital Library, IEEE Xplore, Scopus, Google Scholar, and ArXiV. We gathered 5000 publications (3749 unique), which were systematically reviewed to identify work that empirically improves non-functional properties of software. We identified 386 relevant papers. We find that execution time is the most frequently targeted property for improvement (in 62% of relevant papers), while multi-objective improvement is rarely considered (5%). Static approaches are prevalent (in 53% of papers), with exploratory approaches (evolutionary in 18% and non-evolutionary in 14% of papers) increasingly popular in the last 10 years. Only 40% of 386 papers describe work that uses benchmark suites, rather than single software, of those SPEC is most popular (covered in 33 papers). We also provide recommendations for choice of benchmarks in future work, noting, e.g., lack of work that covers Python or JavaScript. We provide all programs found in the 386 papers on our dedicated webpage at https://bloa.github.io/nfunc_survey/ We hope that this effort will facilitate more research on the topic of automated improvement of software's non-functional properties.

研究动机与目标

  • 识别并分析用于自动化提升软件非功能属性(NFPs)的基准,如执行时间、内存和能耗。
  • 评估现有实证研究中软件目标、编程语言和基准套件的普遍性和多样性。
  • 评估用于NFP改进的方法类型(静态、进化、探索性)及其采用趋势。
  • 突出当前研究中的差距,包括对现代语言(如Python、JavaScript)、移动平台以及多目标优化的代表性不足。
  • 提供一个经筛选的、公开可访问的存储库,包含所有386篇调研程序和基准,以支持未来研究的标准化。

提出的方法

  • 在五个主要存储库(ACM Digital Library、IEEE Xplore、Scopus、Google Scholar和arXiv)中进行系统性文献综述,检索到5,000篇出版物。
  • 通过迭代过滤识别出3,749篇唯一论文,随后经人工审查筛选出386篇与NFP改进相关的实证研究。
  • 根据以下方面对所选论文进行分类:(1) 目标非功能属性,(2) 改进方法(静态、进化、探索性),(3) 基准类型(单个软件或套件),以及(4) 软件特性。
  • 基于关键词搜索和初步人工筛选100篇论文,以优化搜索术语并确保涵盖相关研究领域。
  • 汇总并分析基准使用模式,包括复用频率和语言多样性。
  • 通过专用网站公开发布所有识别出的程序和基准:https://bloa.github.io/nfunc_survey/

实验结果

研究问题

  • RQ1RQ1:关于软件自动化非功能性能改进的实证研究有多普遍?哪些非功能属性最常被针对?
  • RQ2RQ2:用于验证非功能属性改进的软件和基准中最常使用的是什么?
  • RQ3RQ3:所用基准在现实世界软件多样性方面(包括编程语言和应用领域)的代表性如何?
  • RQ4RQ4:最常使用的改进方法类型(静态、进化等)是什么?这些方法随时间如何演变?
  • RQ5RQ5:当前基准实践中的关键差距是什么,特别是在多目标优化和对现代软件栈支持方面?

主要发现

  • 执行时间是最常被针对的非功能属性,在386篇调研论文中被优化的比例达62%。
  • 仅有5%的论文考虑多目标优化,表明尽管存在潜在权衡,研究仍高度集中于单属性优化。
  • 静态分析方法占主导地位(53%的论文),其次是探索性方法(18%为进化方法,14%为非进化方法),且在过去十年中呈上升趋势。
  • 在386篇论文中,仅有40%使用基准套件;其中,SPEC最为流行,被33篇论文引用。
  • 学术基准与现实世界软件之间存在显著脱节:Python、JavaScript和移动平台在当前研究中代表性严重不足。
  • 本调研揭示了现代软件栈缺乏标准化且具代表性的基准,尤其在执行时间之外的非功能属性方面。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。