PyroBuildS: Speeding up the exploration of large configuration spaces with incremental build

IF 4.1 2区 计算机科学 Q1 COMPUTER SCIENCE, SOFTWARE ENGINEERING
Georges Aaron Randrianaina , Djamel Eddine Khelladi , Olivier Zendra , Mathieu Acher
{"title":"PyroBuildS: Speeding up the exploration of large configuration spaces with incremental build","authors":"Georges Aaron Randrianaina ,&nbsp;Djamel Eddine Khelladi ,&nbsp;Olivier Zendra ,&nbsp;Mathieu Acher","doi":"10.1016/j.jss.2025.112592","DOIUrl":null,"url":null,"abstract":"<div><div>Software developers are acutely aware that software build is an essential but resource-intensive step in any software development process, all the more when building large and/or highly configurable systems, whose vast number of configuration options leads to an explosion in the number of variants to build and evaluate. A potential approach to speed up the builds of multiple configurations is to do <em>incremental build</em>, <em>i.e.</em>, to not clean the build environment and reuse previous builds when building a new configuration. Previous exploratory studies showed some benefits and limitations of incremental build, but mainly on small configurable software systems and on a limited set of close configurations. However, for <em>large configuration spaces</em>, little is known whether the large distance across configurations impacts the correctness and efficiency of incremental build.</div><div>This paper presents <span>PyroBuildS</span>, <em>a new approach to speed up incremental builds</em> while keeping reproducibility, featuring a configuration variation operator parameterized by two deny lists of problematic options and a mutation size (diversity).</div><div>We evaluate <span>PyroBuildS</span> through an empirical study on three large complex configurable systems, namely Linux, BusyBox, and ToyBox, with respectively 18637, 1078, 330 configuration options. We first show that for all configurations <span>PyroBuildS</span> produces the exact same binaries as a clean build, except for Linux with some non-reproducible random configurations. We identify the reasons why incremental build speeds up or slows down the build of large configuration spaces – a knowledge that can be integrated into <span>PyroBuildS</span>. Incremental build systematically pays off, since problematic options are avoided in the first place — something only <span>PyroBuildS</span> does. We also show that a <em>naive</em> use of incremental build on random Linux configurations backfires, taking more time than clean builds. Thus, <span>PyroBuildS</span> controls diversity to avoid too many differences across configurations to perform efficient incremental builds.</div><div>Thanks to its ability to operate over non-problematic options and close enough configurations, <span>PyroBuildS</span> significantly speeds up the exploration of large configuration spaces, with a gain in build time from 16% to 22% in all three systems with mutated configurations. Finally, with random configurations, <span>PyroBuildS</span> also speeds up the build time from 15% to 20% for ToyBox and BusyBox.</div></div>","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":"231 ","pages":"Article 112592"},"PeriodicalIF":4.1000,"publicationDate":"2025-08-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Journal of Systems and Software","FirstCategoryId":"94","ListUrlMain":"https://www.sciencedirect.com/science/article/pii/S0164121225002614","RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q1","JCRName":"COMPUTER SCIENCE, SOFTWARE ENGINEERING","Score":null,"Total":0}
引用次数: 0

Abstract

Software developers are acutely aware that software build is an essential but resource-intensive step in any software development process, all the more when building large and/or highly configurable systems, whose vast number of configuration options leads to an explosion in the number of variants to build and evaluate. A potential approach to speed up the builds of multiple configurations is to do incremental build, i.e., to not clean the build environment and reuse previous builds when building a new configuration. Previous exploratory studies showed some benefits and limitations of incremental build, but mainly on small configurable software systems and on a limited set of close configurations. However, for large configuration spaces, little is known whether the large distance across configurations impacts the correctness and efficiency of incremental build.
This paper presents PyroBuildS, a new approach to speed up incremental builds while keeping reproducibility, featuring a configuration variation operator parameterized by two deny lists of problematic options and a mutation size (diversity).
We evaluate PyroBuildS through an empirical study on three large complex configurable systems, namely Linux, BusyBox, and ToyBox, with respectively 18637, 1078, 330 configuration options. We first show that for all configurations PyroBuildS produces the exact same binaries as a clean build, except for Linux with some non-reproducible random configurations. We identify the reasons why incremental build speeds up or slows down the build of large configuration spaces – a knowledge that can be integrated into PyroBuildS. Incremental build systematically pays off, since problematic options are avoided in the first place — something only PyroBuildS does. We also show that a naive use of incremental build on random Linux configurations backfires, taking more time than clean builds. Thus, PyroBuildS controls diversity to avoid too many differences across configurations to perform efficient incremental builds.
Thanks to its ability to operate over non-problematic options and close enough configurations, PyroBuildS significantly speeds up the exploration of large configuration spaces, with a gain in build time from 16% to 22% in all three systems with mutated configurations. Finally, with random configurations, PyroBuildS also speeds up the build time from 15% to 20% for ToyBox and BusyBox.
PyroBuildS:通过增量构建加速对大型配置空间的探索
软件开发人员敏锐地意识到,在任何软件开发过程中,软件构建都是必不可少的,但也是资源密集的步骤,尤其是在构建大型和/或高度可配置的系统时,其大量的配置选项导致要构建和评估的变体数量激增。加速构建多个配置的潜在方法是进行增量构建,即,在构建新配置时不清理构建环境并重用以前的构建。以前的探索性研究显示了增量构建的一些好处和局限性,但主要是在小型可配置软件系统和有限的封闭配置集上。然而,对于大型配置空间,很少有人知道跨配置的大距离是否会影响增量构建的正确性和效率。本文提出了PyroBuildS,这是一种加速增量构建同时保持可重复性的新方法,其特点是配置变化算子由两个问题选项的拒绝列表和突变大小(多样性)参数化。我们通过对三个大型复杂可配置系统(即Linux、BusyBox和ToyBox)分别具有18637、1078和330个配置选项的实证研究来评估PyroBuildS。我们首先展示的是,对于所有配置,除了具有一些不可复制的随机配置的Linux之外,pyrobuild产生的二进制文件与干净的构建完全相同。我们确定了增量构建加快或减慢大型配置空间构建的原因——这些知识可以集成到PyroBuildS中。增量构建系统地获得了回报,因为一开始就避免了有问题的选项——这是只有PyroBuildS才能做到的。我们还展示了在随机Linux配置上天真地使用增量构建会适得其反,比干净的构建花费更多的时间。因此,PyroBuildS控制多样性,以避免配置之间的太多差异,从而执行有效的增量构建。由于其在无问题选项和足够接近的配置上的操作能力,PyroBuildS显着加快了对大型配置空间的探索,在所有三个具有突变配置的系统中,构建时间从16%增加到22%。最后,通过随机配置,PyroBuildS还可以将ToyBox和BusyBox的构建时间从15%加快到20%。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
Journal of Systems and Software
Journal of Systems and Software 工程技术-计算机:理论方法
CiteScore
8.60
自引率
5.70%
发文量
193
审稿时长
16 weeks
期刊介绍: The Journal of Systems and Software publishes papers covering all aspects of software engineering and related hardware-software-systems issues. All articles should include a validation of the idea presented, e.g. through case studies, experiments, or systematic comparisons with other approaches already in practice. Topics of interest include, but are not limited to: •Methods and tools for, and empirical studies on, software requirements, design, architecture, verification and validation, maintenance and evolution •Agile, model-driven, service-oriented, open source and global software development •Approaches for mobile, multiprocessing, real-time, distributed, cloud-based, dependable and virtualized systems •Human factors and management concerns of software development •Data management and big data issues of software systems •Metrics and evaluation, data mining of software development resources •Business and economic aspects of software development processes The journal welcomes state-of-the-art surveys and reports of practical experience for all of these topics.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信