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.
翻译:现代软件的绩效是关键质量的现代软件。虽然近年来,关于自动改进软件执行时间、能源、记忆消耗等的自动化改进研究出现了大幅增长,但此类工作明显缺乏标准基准。还不清楚这些基准如何代表当前软件。此外,软件经常是非功能性特性的,目标是一次性改进软件的非功能性能,忽视对其他属性的潜在负面影响。为了促进关于软件非功能性特性的自动改进的更多研究,我们开展了先前工作中所使用的一项调查收集工作。我们认为软件工程工作的5个主要在线储存库:ACM数字图书馆、IEEEXplore、Scopus、Google学者和ArXiV。 我们收集了5000份出版物(3749个独特)。 此外,我们系统地审查了这些软件的功能性能性能性能,从而改善了软件的非功能性能性能。我们发现,执行时间是最经常针对的改进性能(在62%的相关文件中),但很少考虑多目标性能改进(5%)。Statical 方法很普遍(在53%的文件中,53%在5 e e-e real redustrivealalalalalalalal livesal livesess 中,在18年的文件中也越来越多地读取了18 %,在10年的论文中,在40年的论文中提供了更多的论文中,在10年的论文中使用了这些研究基准/19%,在10年的论文中,在40年的论文中提供了越来越多的论文中提供这些基准。