Transfer Learning for Improving Model Predictions in Highly Configurable Software
现代软件系统被构建为在动态环境中使用,使用配置功能来适应变化和外部不确定性。在自适应环境下,我们经常感兴趣的推理不同配置下的系统的性能。通常,我们根据实际测量来学习黑盒模型,以预测给定特定配置的系统性能。然而,随着现代系统变得越来越复杂,有许多配置参数可能会相互作用,我们最终会学习到一个指数级大的配置空间。当然,当依赖于实际变化环境中的真实测量时,这不会扩展。我们提出了一个不同的解决方案:我们不是从真实系统中进行测量,而是使用来自其他来源的样本来学习模型,例如以低成本近似真实系统性能的模拟器。我们定义了一个成本模型,将模型学习的传统观点转化为一个多目标问题,不仅考虑模型的准确性,而且还考虑测量工作。我们使用真实世界的可配置软件来评估我们的成本感知迁移学习解决方案,包括(i)机器人系统,(ii)3种不同的流处理应用程序,以及(iii)NoSQL数据库系统。实验结果表明,我们的方法可以实现(a)高预测精度,以及(b)高模型可靠性。
2017-04-20 cs.SE
Detecting Performance-Relevant Changes in Configurable Software Systems
Saarland University(萨尔兰大学);Leipzig University(莱比锡大学)
ConfFLARE通过识别数据流交互和相关软件特性,有效减少性能测试成本,准确检测性能退化。
2025-11-21 cs.SE
Applying Model Checking to Highly-Configurable Safety Critical Software: The SPS-PPS PLC Program
许多粒子加速器的一个重要方面是不断发展和频繁的配置变化,需要执行它们设计的实验。这通常会导致可配置软件的设计,可以吸收这些变化,并执行所需的控制和保护行动。这种设计策略最大限度地降低了工程和维护成本,但它使软件验证活动更具挑战性,因为必须保证任何可能的配置的安全属性。软件模型检验是一种广泛应用的自动化验证技术。这种验证方法探索系统模型的所有可能组合,以保证其符合某些属性或规范。这对于高度可配置的软件来说是一种非常合适的技术,因为通常有大量的组合需要检查。本文介绍了如何PLCverif,欧洲核子研究中心的模型检验平台,已被应用到一个高度可配置的可编程逻辑控制器(PLC)程序,SPS人员保护系统(PPS)。这种验证方法的好处和挑战也进行了讨论。
2022-03-30 cs.SE cs.SY eess.SY
Small Yet Configurable: Unveiling Null Variability in Software
Institut Polytechnique de Paris(巴黎理工学院);Univ Rennes, CNRS, Inria, IRISA(雷恩大学、法国国家科学研究中心、法国国家信息与自动化研究所、IRISA实验室);EssilorLuxottica(依视路陆逊梯卡)
本文通过分析GNU coreutils中的108个程序,发现小型软件存在显著的编译时和运行时变异性,且变异性随时间增加而提升,提出空变异性软件概念,表明高可配置性不局限于大规模系统,减少冗余变异性可使软件更轻量易维护。
2026-04-17 cs.SE
A Large-Scale Study on Developer Engagement and Expertise in Configurable Software System Projects
本研究通过挖掘25个CSS项目仓库的45万余次提交,分析开发者对可变/强制代码的参与度、可变代码工作量集中度及专业知识指标有效性,发现可变代码责任高度集中且传统指标识别效果差,为CSS项目任务分配提供改进方向。
2025-08-25 cs.SE
Causality in Configurable Software Systems
检测和理解软件中的缺陷和无意行为的原因是具有挑战性的,因为它们越来越复杂。在可配置的软件系统中,由用户可能从中选择的众多特征产生的组合学增加了另一层复杂性。我们引入了特征因果关系的概念,它是基于反事实推理,并受到Halpern和Pearl对实际因果关系的开创性定义的启发。特征因果关系在系统配置的层面上运作,能够识别特征及其相互作用,这些特征及其相互作用是出现功能和非功能属性的原因。我们提出了各种方法来解释这些原因,特别是完善的责任和责备的概念,我们扩展到面向功能的设置。建立一个密切的联系,特征因果关系的主要蕴涵,我们提供了算法,有效地计算特征原因和因果解释。通过对广泛的可配置软件系统(包括社区基准测试和现实系统)进行评估,我们证明了我们方法的可行性:我们说明了因果关系的概念如何有助于识别根本原因,估计功能的影响,并检测功能交互。
2022-02-28 cs.LO cs.SE
Maximizing Patch Coverage for Testing of Highly-Configurable Software without Exploding Build Times
针对Linux内核补丁测试中现有配置方案构建耗时长且难保证补丁覆盖的问题,提出krepair方法,仅对快速构建但补丁覆盖差的配置做少量修改,即可实现平均98.5%的补丁覆盖率,同时保持构建速度比最大覆盖配置快10.5倍。
2024-04-27 cs.SE
GuiLiner: A Configurable and Extensible Graphical User Interface for Scientific Analysis and Simulation Software
大多数用户每天与之交互的计算机程序由图形用户界面(GUI)驱动。然而,许多科学应用程序都使用命令行界面(CLI),以方便开发并增加此模式提供的灵活性。科学应用程序开发人员将受益于能够为他们的CLI程序轻松提供GUI,从而保留两种交互模式的优点。GuiLiner是一个通用的、可扩展的和灵活的前端,旨在“托管”各种各样的数据分析或模拟程序。科学应用程序开发人员可以生成一个正确格式化的XML文件,描述他们的程序选项和一些文档,他们可以立即使用GuiLiner为他们的分析或模拟程序生成一个精心实现的GUI。
2008-06-02 cs.HC cs.SE
Whence to Learn? Transferring Knowledge in Configurable Systems using BEETLE
随着软件系统复杂性的增长和可能配置的空间呈指数级增长,找到软件系统的接近最优配置变得具有挑战性。最近的方法通过基于配置样本集学习性能模型来解决这一挑战。然而,收集足够的样本配置可能非常昂贵,因为每个这样的样本都需要使用复杂的测试套件来配置、编译和执行整个系统。当学习新数据的成本太高时,可以使用\textit{Transfer Learning}将旧课程“转移”到新的上下文。传统的迁移学习有许多挑战,具体来说,(a)从过多的数据中学习需要花费过多的时间,以及(b)通过迁移构建的模型的性能可能会因为从不良源学习而恶化。为了解决这些问题,我们提出了一种新的迁移学习框架BEETLE,这是一个“领头羊”为基础的迁移学习者,专注于识别和学习最相关的来源,从旧的数据。本文评估BEETLE与57个不同的软件配置问题的基础上的五个软件系统(视频编码器,SAT求解器,SQL数据库,高性能的C编译器,流数据分析工具)。在每一种情况下,BEETLE发现的配置与其他最先进的迁移学习器发现的配置一样好或更好,而只需要其他方法所需的测量的一小部分($\frac{1}{7}$ th)。基于这些结果,我们说BEETLE是软件优化配置的一个新的高水位标志。
2020-03-25 cs.SE
A Tool for Automatically Cataloguing and Selecting Pre-Trained Models and Datasets for Software Engineering
Universitat Politècnica de Catalunya(加泰罗尼亚理工大学)
MLAssetSelection是一种自动归档和选择软件工程预训练模型和数据集的网页工具,提供排行榜、需求匹配、实时更新和用户定制功能。
2026-01-19 cs.SE
A Comparative Analysis of Backbone Algorithms for Configurable Software Systems
Universidad Nacional de Educacion a Distancia (UNED)(西班牙国家开放大学);ITIS Software, Universidad de Málaga(马拉加大学 ITIS 软件)
本文通过分析2371个来自真实世界可变性模型的公式,比较了5种先进算法在不同规模公式上的性能,发现算法2/3适合小规模公式,算法5在大规模公式中表现最佳,且过滤启发式对性能影响较小。
2026-03-16 cs.SE
The Interaction between Inputs and Configurations fed to Software Systems: an Empirical Study
广泛使用的软件系统,如视频编码器,必然是高度可配置的,有数百甚至数千个选项可供选择。他们的用户通常很难找到这些选项的合适值(即找到软件系统的适当配置),以满足他们手头任务的目标,例如将视频压缩到一定大小。问题的一个方面当然是性能取决于输入数据:输入到x264编码器的视频或输入到xz工具的文件系统。因此,为了获得良好的性能,用户应该考虑(1)软件可变性和(2)输入数据这两个方面。在这篇问题陈述论文中,我们对8个可配置系统进行了大量研究,这些系统量化了输入数据和软件系统配置之间的现有交互。结果表明:(1)输入到软件系统与他们的配置选项以非单调的方式相互作用,显着影响他们的性能属性(2)调整一个软件系统的输入数据,使其性能增加了十倍(3)输入可变性可能会危及性能预测模型的相关性,现场部署。
2023-02-21 cs.SE
Uncertainty-Aware Performance Prediction for Highly Configurable Software Systems via Bayesian Neural Networks
RMIT University(皇家墨尔本理工大学);Huaqiao University(华侨大学);The University of Newcastle(纽卡斯尔大学)
可配置软件系统在许多重要的应用领域中被采用。了解系统在所有配置下的性能对于防止错误配置导致的潜在性能问题至关重要。然而,由于配置的数量可能非常大,因此不可能在所有配置下测量系统性能。因此,一种常见的方法是从有限的测量数据中构建预测模型,以预测所有配置的性能作为标量值。然而,已经指出,存在来自数据汇集或建模过程的不同来源的不确定性,这可能使标量预测不一定准确。为了解决这个问题,我们提出了一种基于贝叶斯深度学习的方法,即BDLPerf,它可以将不确定性纳入预测模型。BDLPerf可以提供配置性能的标量预测以及这些标量预测的相应置信区间。我们还开发了一种新的不确定性校准技术,以确保贝叶斯预测模型生成的置信区间的可靠性。最后,我们提出了一种有效的超参数调整技术,以便在合理的时间内训练预测模型,同时实现高精度。我们在10个真实系统上的实验结果表明,BDLPerf在标量性能预测和置信区间估计方面都比现有方法具有更高的准确性。
2022-12-27 cs.AI cs.LG cs.SE
Learning Feature Interactions With and Without Specifications
产品线和高度可配置的系统中的功能可以以与开发人员意图相反的方式进行交互。目前的方法来识别这种意外的功能相互作用是昂贵的和不足的。为了解决这个问题,我们提出了一种新的方法来学习功能的相互作用,无论是在那些产品线的功能组合的约束规定,并在功能丰富的可配置系统,这种规范往往是不可用的。本文的贡献是使用程序分析从源代码中提取功能相关的学习模型,以检测不需要的功能交互。在功能约束的规格是不可用的,我们的方法推断使用功能相关的数据流依赖信息的约束。在三个软件产品线基准测试和一个高度可配置的系统上的实验结果表明,该方法是快速有效的。其贡献是通过自动检测新产品或版本中可能以不需要或无法识别的方式进行交互的功能组合来支持开发人员。这使得能够更好地理解潜在的交互作用,并确定应该一起测试的软件组件,因为它们的功能在某些配置中相互作用。
2021-04-16 cs.SE
Rethinking Performance Analysis for Configurable Software Systems: A Case Study from a Fitness Landscape Perspective
University of Electronic Science and Technology of China(电子科技大学);University of Exeter(埃克塞特大学)
本文提出将可配置软件系统的配置空间建模为适应度景观,并设计开源图数据挖掘框架FLA,基于8600万配置的分析揭示了景观地形特征及其对配置调优和性能建模的启示。
2025-01-02 cs.DC cs.LG cs.PF
Feature-Interaction Aware Configuration Prioritization for Configurable Code
在一个可配置的软件系统中,功能之间的意外交互会导致大多数错误。详尽地分析所有指数数量的可能配置是成本过高的。因此,已经提出了各种采样技术来系统地缩小要分析的合法配置的指数数量。由于分析所有选定的配置可能需要大量的工作,基于故障的配置优先级,有助于更早地检测故障,可以在质量保证方面产生实际的好处。在本文中,我们提出了CoPro,一种新的配方功能交互错误通过共同的程序实体启用/禁用的功能。利用这一点,我们开发了一个有效的功能交互感知配置优先级技术的可配置系统的配置排名根据其潜在的错误总数。我们进行了几项实验来评估CoPro在公共基准测试中检测配置相关错误的能力。我们发现,当我们在高级采样算法上添加它们时,CoPro的性能优于最先进的配置优先级技术。在78%的情况下,CoPro将错误配置排在结果列表的前3位。有趣的是,CoPro能够检测到17个尚未发现的功能交互错误。
2019-11-18 cs.SE
Building Reusable Software Component For Optimization Check in ABAP Coding
软件构件复用是从现有构件开发新软件产品的软件工程实践。重用库或组件重用存储库组织存储和管理可重用组件。本文描述了如何创建一个可重用组件,它如何重用的功能,并检查优化的代码是否被用于构建程序和应用程序。最后,提供用于创建可重用组件的编码指南、标准和最佳实践,以及使可配置和易于使用的指南和最佳实践。
2010-07-29 cs.SE
Learning Software Configuration Spaces: A Systematic Literature Review
Univ Rennes(雷恩大学);Inria(法国国家信息与自动化研究所);CNRS(法国国家科学研究中心);IRISA(法国雷恩信息与系统研究所);University of Limerick(利默里克大学);Lero–The Irish Software Research Centre(Lero——爱尔兰软件研究中心);University College Dublin(都柏林大学学院)
大多数现代软件系统(Linux或Android等操作系统,Firefox或Chrome等Web浏览器,ffmpeg、x264或VLC等视频编码器,移动和云应用程序等)是高度可配置的可以组合数百个配置选项、功能或插件,每个都可能具有不同的功能,并对执行时间、安全性、能耗等产生影响。由于组合爆炸和执行软件的成本,几乎不可能穷尽整个配置空间。因此,许多工作已经调查的想法,学习它从一个小样本的配置的测量。模式“采样,测量,学习”已经出现在文献中,有几个实际利益的软件开发人员和最终用户的可配置系统。在本调查中,我们报告了不同的应用目标(例如,性能预测、配置优化、约束挖掘)、用例、目标软件系统和应用领域。我们回顾了各种策略,以收集具有代表性和成本效益的样本。我们描述了自动化的软件技术,用于测量配置的功能和非功能属性。我们对机器学习算法进行分类,并说明它们与所追求的应用程序的关系。最后,我们还描述了研究人员如何评估学习过程的质量。本系统评价的结果表明,潜在的应用目标是重要的,有大量的案例研究报告在文献中的基础上的几个领域和软件系统。然而,可配置系统的巨大变量空间仍然具有挑战性,并呼吁进一步研究人工智能和软件工程之间的协同作用。
2019-06-07 cs.LG cs.SE
Transfer Learning for Performance Modeling of Configurable Systems: An Exploratory Analysis
现代软件系统提供了许多配置选项,这些选项显著地影响它们的非功能属性。为了理解和预测配置选项的效果,已经提出了几种采样和学习策略,尽管通常需要大量的成本来覆盖高维配置空间。最近,迁移学习已被应用于通过跨环境迁移有关性能行为的知识来减少构建性能模型的工作。虽然这一系列研究有望以较低的成本学习更准确的模型,但目前还不清楚迁移学习为什么以及何时适用于性能建模。为了阐明何时应用迁移学习是有益的,我们对四种流行的软件系统进行了实证研究,不同的软件配置和环境条件,如硬件,工作负载和软件版本,以确定可用于迁移学习的关键知识片段。我们的研究结果表明,在小的环境变化(例如,同构工作负载变化),通过对性能模型应用线性变换,我们可以理解目标环境的性能行为,而对于严重的环境变化(例如,剧烈的工作负载变化),我们可以仅传递使采样更有效的知识,例如,通过降低配置空间的维数。
2017-09-07 cs.PF cs.SE stat.ML
Program Feature-based Fuzzing Benchmarking
针对传统模糊测试评估少有关注细粒度程序特征影响的问题,研究提取7项相关程序特征,构建含153个可配置程序的新型基准,评估11款工具后证实程序特征显著影响模糊测试性能,为优化评估提供支撑。
2025-06-18 cs.SE
Test them all, is it worth it? Assessing configuration sampling on the JHipster Web development stack
许多测试可配置软件系统的方法都是从同一个假设开始的:不可能测试所有的配置。这激发了可变性感知抽象和采样技术的定义,以应对大的配置空间。然而,如果这样做所需的努力仍然可以接受,则没有理论障碍阻止通过简单地列举它们来对所有配置进行详尽测试。不仅如此:我们相信,通过系统地、详尽地测试一个可配置系统,我们可以学到很多东西。在这个案例研究中,我们报告了有史以来第一次努力测试所有可能的配置的行业实力,开源的可配置软件系统,JHipster,一个流行的代码生成器的Web应用程序。我们为JHipster的26,000多个配置构建了一个测试框架,使用了80台机器的集群,在4个晚上总共使用了4,376小时(182天)的CPU时间。我们发现,35.70%的配置失败,我们确定的功能相互作用,导致错误。我们表明,采样策略(如相异度和2明智的):(1)是更有效地找到故障比12个默认配置中使用的JHipster连续集成;(2)可能是太昂贵,超过可用的测试预算。我们将这种定量分析与JHipster主要开发人员的定性评估相结合。
2018-06-11 cs.SE
HINNPerf: Hierarchical Interaction Neural Network for Performance Prediction of Configurable Systems
Sun Yat-sen University(中山大学)
现代软件系统通常是高度可配置的,通过各种配置选项为用户提供定制的功能。了解系统性能如何随不同选件组合而变化对于确定满足特定要求的最佳配置非常重要。由于多个选项之间的复杂的相互作用和巨大的配置空间下的性能测量的高成本,这是具有挑战性的研究如何不同的配置影响系统的性能。为了解决这些挑战,我们提出了HINNPerf,一种新的分层交互神经网络的可配置系统的性能预测。HINNPerf采用嵌入方法和层次网络块来建模配置选项之间复杂的相互作用,提高了方法的预测精度。此外,我们设计了一个层次的正则化策略,以提高模型的鲁棒性。在10个真实可配置系统上的实证结果表明,我们的方法在统计上显著优于最先进的方法,预测精度平均提高了22.67%。此外,结合集成的属性方法,设计的层次结构提供了一些关于交互复杂性和配置选项的重要性的见解,这可能有助于用户和开发人员更好地理解可配置系统的工作原理,并有效地识别影响性能的重要选项。
2022-04-08 cs.AI cs.SE
Unlocking the Secrets of Software Configuration Landscapes-Ruggedness, Accessibility, Escapability, and Transferability
本文对三个真实软件系统在32个工作负载上的8600万个配置进行首次适应度景观分析,揭示配置景观崎岖但顶级局部最优可达、较差局部最优可逃逸且跨负载结构相似,为配置调优的元启发式设计提供基础。
2024-02-02 cs.NE cs.SE
Specialization of Run-time Configuration Space at Compile-time: An Exploratory Study
许多软件系统通过运行时间选项(如命令行参数)是高度可配置的。用户可以调整某些选项,以满足各种功能和非功能需求,如占用空间、安全性或执行时间。然而,有些选项从来没有为给定的系统实例设置过,无论系统的用例如何,它们的值都保持不变。在此,我们设计了一个受控实验,其中系统的运行时间配置空间可以在编译时专门化,并且可以根据需要删除选项的组合。我们对著名的x264视频编码器进行了深入的研究,并量化了其专业化对其非功能属性的影响,即二进制大小,攻击面和性能,同时确保其有效性。我们的探索性研究表明,系统的可配置专业化具有统计上的显着好处,其分析的非功能性的属性,这些好处取决于的debloated选项的数量。虽然我们的实证结果和见解表明,删除与未使用的运行时间选项,以改善软件系统的代码的重要性,一个开放的挑战是进一步自动化的专业化过程。
2022-10-25 cs.SE
How Low Can We Go? Minimizing Interaction Samples for Configurable Systems
针对可配置系统测试中交互样本优化空间不明的问题,提出基于对偶原理的框架结合近优解与可证明下界,开发的SampLNS算法在多数案例中样本更小且常可证明最优,节省测试资源。
2025-01-12 cs.SE math.OC
Distilled Lifelong Self-Adaptation for Configurable Systems
University of Birmingham(伯明翰大学);School of Computer Science, University of Birmingham(伯明翰大学计算机科学学院)
本文提出 DLiSA 框架,通过终身规划与蒸馏知识播种实现可配置系统在时变负载下的高效自适应,实验显示性能最高提升 229%、资源加速最高 2.22 倍。
2025-01-01 cs.AI cs.SE
Faster Discovery of Faster System Configurations with Spectral Learning
North Carolina State University(北卡罗来纳州立大学);University of Weimar(魏玛大学);University of Passau(帕绍大学)
尽管可配置的软件系统的巨大的传播和经济的重要性,有不满意的支持,在利用这些系统的全部潜力,找到性能最佳的配置。以前的工作预测软件配置的性能遭受要么(a)需要太多的样本配置或(b)在他们的预测大的变化。这两个问题都可以使用WHAT谱学习器来避免。什么是创新是使用的频谱(特征值)的距离矩阵之间的配置的可配置的软件系统,执行降维。在该缩减的配置空间内,可以通过仅执行几个示例配置来研究许多紧密关联的配置。对于这里研究的主题系统,几十个样本产生准确和稳定的预测-小于10%的预测误差,标准差小于2%。当与现有技术相比时,WHAT(a)需要少2到10倍的样本来实现类似的预测精度,并且(b)其预测更稳定(即,标准偏差更低)。此外,我们证明了预测模型生成的什么可以被优化器用来发现系统配置,接近最佳性能。
2017-08-03 cs.LG cs.SE
When to Use Which? Benchmarking Optimisers for Configurable Systems under Varying Budgets
University of Birmingham(伯明翰大学);IDEAS Lab, University of Birmingham(伯明翰大学IDEAS实验室)
研究在不同预算下可配置系统中优化器的选择问题,通过对22个系统的8种优化器进行评估,发现基于模型的优化器在预算紧张时适用,无模型优化器在预算充足时更优,FLASH在多数系统中无论预算如何都表现良好,并探究了原因。
2026-07-21 cs.AI cs.SE
Deep Configuration Performance Learning: A Systematic Survey and Taxonomy
University of Electronic Science and Technology of China(电子科技大学);Loughborough University(拉夫堡大学);University of Birmingham(伯明翰大学)
本文针对可配置软件的深度学习性能预测问题,系统调研六大索引的1206篇文献并分析99篇核心研究,构建相关技术分类体系,总结优劣、适用场景、实践问题与未来方向,开放原始数据以推动开放科学。
2024-11-03 cs.AI cs.LG cs.SE
Observation-Driven Configuration of Complex Software Systems
软件系统不断增加的复杂性使得它们难以理解,预测和调整,由于紧急属性和非确定性行为。复杂性来自软件系统的规模和各种各样的可能的操作环境:平台和通信策略的选择越来越多,导致越来越复杂的性能特征。此外,软件系统在不同的工作负载下表现出不同的行为。许多软件系统被设计为可配置的,以便可以选择策略来满足不同涉众的需求。对于复杂的软件系统,很难准确预测更改的影响,也很难知道哪种配置最合适。这篇论文表明,它是有用的,运行自动化实验,测量系统配置的选择。实验可以找到满足利益相关者需求的配置,找到有趣的行为特征,并帮助生成系统行为的预测模型。ACT(自动配置工具)的设计和使用进行这样的实验,结合一些搜索策略,用于决定的配置来测量。实验设计(DOE)进行了讨论,重点是田口方法。这些统计方法已广泛用于制造业,但以前没有用于配置软件系统。这里的新贡献是一个工业案例研究,应用ACT和田口方法相结合的DC目录,数据连接有限公司(DCL)的产品。案例研究调查了田口方法配置复杂的软件系统的适用性。田口方法被发现是有用的建模和配置DC目录,使他们成为一个有价值的除了可用的技术,系统管理员和开发人员。
2010-06-30 cs.SE
Do #ifdefs Influence the Occurrence of Vulnerabilities? An Empirical Study of the Linux Kernel
预处理器通过#ifdef支持软件产品的多样化,但也需要开发人员付出额外的努力来维护和理解可变代码。我们推测,#ifdef会导致开发人员产生更脆弱的代码,因为他们需要同时推理多个功能,并维护可配置代码的依赖关系的复杂心理模型。我们在Linux内核的所有配置中提取了一个变分调用图,并使用配置复杂性指标来比较易受攻击和不受攻击的函数,同时考虑它们的漏洞历史。我们的目标是了解我们是否可以观察到配置复杂性对漏洞发生的可测量影响。我们的研究结果表明,除其他外,脆弱的功能有更高的可变性比非脆弱的,也受到较少的配置选项。这表明开发人员倾向于注意到函数出现在频繁编译的产品变体中。我们的目标是提高开发人员的意识,更系统地解决可变性,因为配置复杂性是一个重要的,但往往被忽视的软件产品线的方面。
2016-05-23 cs.SE
Exploring Performance Trade-offs in JHipster
本文研究可配置软件系统 JHipster 中配置选择对性能的影响,通过详尽分析构建了综合性能模型,可自动化识别在多指标上接近最优的配置,并揭示了配置与性能间的显著相关性。
2024-09-24 cs.SE
White-Box Performance-Influence Models: A Profiling and Learning Approach
许多现代软件系统是高度可配置的,允许用户调整它们的性能等。当前的性能建模方法旨在通过以黑盒方式构建性能模型来找到性能最优的配置。虽然这些模型提供了准确的估计,但它们无法将观察到的性能行为的原因精确地定位到特定的代码区域。这不仅妨碍了对系统的理解,而且使跟踪配置选项对各个方法的影响变得复杂。我们提出了一个白盒方法,模型配置相关的性能行为在方法级别。这使我们能够预测配置决策对单个方法的影响,支持系统理解和性能调试。该方法包括两个步骤:首先,我们使用粗粒度的分析器,并学习所有方法的性能影响模型,可能会识别出一些对配置和性能高度敏感的方法,从而导致预测不准确。其次,我们使用细粒度的分析器重新测量这些方法,并以更高的成本学习更准确的模型。通过9个真实的Java软件系统,我们证明了我们的方法可以有效地识别配置相关的方法,并学习准确的性能影响模型。
2021-02-12 cs.SE
Fuzzy Adaptive Tuning of a Particle Swarm Optimization Algorithm for Variable-Strength Combinatorial Test Suite Generation
组合交互测试是一种重要的软件测试技术,近年来引起了广泛的关注。它可以通过考虑输入参数组合之间的相互作用来减少测试用例的数量。经验证据表明,它可以有效地检测故障,特别是高度可配置的软件系统。在实际的软件测试中,输入变量之间的交互作用可能会有所不同,变强度组合交互测试(VS-CIT)可以利用这一点来提高测试效率。变强度测试集的生成是一个非确定性的多项式时间(NP)计算难题\cite{BestounKamalFuzzy2017}。研究表明,与VS-CIT问题的替代方案相比,粒子群优化(PSO)等基于随机种群的算法可能是有效的。然而,它们需要对开发和探索权衡进行详细控制,以避免过早收敛(即陷入局部最优)以及提高解决方案的多样性。在这里,我们提出了一个新的变种的PSO Mamdani模糊推理系统\cite{Camastra2015,TSAKIRIDIS2017257,KHOSRAVANIAN2016280}的基础上,允许自适应选择其全局和局部搜索操作。我们详细介绍了这种组合算法的设计,并通过多个合成和基准问题的实验进行评估。我们的结论是,模糊自适应选择的全局和局部搜索操作,至少是可行的,因为它只执行第二个最好的离散变异的PSO,称为DPSO。在获得最佳平均测试集规模方面,模糊自适应有时甚至优于DPSO。我们讨论了这种性能背后的原因,并概述了未来工作的相关领域。
2018-10-13 cs.SE
Prompting for Performance: Exploring LLMs for Configuring Software
Inria-Simula associate team RIPOST(Inria-Simula联合团队RIPOST);Inria Défi LLM4Code project(Inria LLM4Code项目)
本研究探索大语言模型(LLMs)通过提示词协助面向性能的软件配置的可行性,在识别相关选项、配置排名等任务上评估多款LLMs,初步揭示其与专家知识的对齐能力及幻觉等局限性,为相关系统评估与方案设计奠基。
2025-09-23 cs.AI cs.PF cs.SE
Design, implementation, and validation of a benchmark generator for combinatorial interaction testing tools
本文提出高度可配置的组合测试基准生成器BenCIGen,支持自定义基准类型与复杂度,经组合交互方法验证可生成贴合真实软件特征的基准,助力组合测试工具的评估与方法优化。
2023-11-06 cs.SE
ConfLogger: Enhance Systems' Configuration Diagnosability through Configuration Logging
本文提出 ConfLogger,结合配置感知静态污点分析与 LLM 日志生成,在源码层面补充配置诊断日志,显著提升静默错误配置定位、变量日志覆盖及人工排障效率。
2025-08-29 cs.SE
Does Configuration Encoding Matter in Learning Software Performance? An Empirical Study on Encoding Schemes
Loughborough University(拉夫堡大学)
学习和预测可配置软件系统的性能有助于提供更好的质量保证。其中一个重要的工程决策是如何将配置编码到构建的模型中。尽管存在不同的编码方案,但对于哪种方案更好以及在什么情况下更好仍然知之甚少,因为社区通常依赖于一些以特定方式告知决策的一般信念。为了弥合这一差距,在本文中,我们经验比较了广泛使用的编码方案的软件性能学习,即标签,缩放标签,和独热编码。该研究涵盖了五个系统,七个模型和三种编码方案,导致105个调查案例。我们的主要研究结果显示:(1)以逐个情况的方式进行试错以找到最佳编码方案可能是相当昂贵的,在某些模型和系统上需要高达400+小时;(2)独热编码通常导致最准确的结果,而缩放标签编码在不同模型上的准确性通常较弱;(3)相反,缩放标签编码倾向于导致跨模型/系统的最快训练时间,而独热编码是最慢的;(4)对于所有研究的模型,标签和缩放标签编码通常会导致准确性和训练时间之间的偏差相对较小,但配对模型会根据系统而有所不同。我们讨论了从我们的研究结果中得出的可操作的建议,希望为社区提供对这个主题的更好的理解。为了促进开放科学,这项工作的数据和代码可以在https://github.com/ideas-labo/MSR2022-encoding-study上公开访问。
2022-04-01 cs.AI cs.SE
Can Quantum Computing Improve Uniform Random Sampling of Large Configuration Spaces? (Preprint)
针对软件产品线配置空间指数增长导致完整探索不可行且现代计算机伪随机采样存在统计偏差的问题,提出一种基于量子叠加态编码和测量的真随机均匀配置采样方法,并验证了其均匀性、规模及在量子硬件上的潜力与局限。
2023-07-27 cs.SE quant-ph
Efficient Heuristics and Exact Methods for Pairwise Interaction Sampling
针对成对交互采样问题,本文提出高效启发式与精确方法,证明BH-困难性,并首次可证明最优地解决含约5亿可行交互的最大基准实例。
2025-10-07 cs.CC cs.DS cs.SE
KGSecConfig: A Knowledge Graph Based Approach for Secured Container Orchestrator Configuration
容器集群管理器(CO)是管理容器集群的重要技术,容器集群可以形成用于开发和操作软件系统的虚拟化基础设施。像任何其他软件系统一样,保护CO是至关重要的,但由于大量的可配置选项,这可能是一项非常具有挑战性的任务。手动配置不仅知识密集且耗时,而且容易出错。为了实现CO安全配置的自动化,提出了一种新的基于知识图谱的安全配置方法KGSecConfig。我们的解决方案利用关键字和学习模型,在统一的结构中系统地捕获,链接和关联异构和多供应商配置空间,以支持CO安全配置的自动化。我们在Kubernetes,Docker,Azure和VMWare上实现KGSecConfig,以构建安全配置知识图谱。我们的评估结果显示,关键字和基于学习的安全配置选项和概念提取的准确率分别为0.98和0.94。我们还演示了如何利用知识图谱在Kubernetes集群中自动缓解错误配置。我们断言,我们的基于知识图谱的方法可以帮助解决几个挑战,例如,安全配置错误,与手动配置CO安全相关。
2021-12-21 cs.CR cs.SE
Do Performance Aspirations Matter for Guiding Software Configuration Tuning?
Loughborough University(拉夫堡大学);University of Birmingham(伯明翰大学)
可配置的软件系统可以被调整以获得更好的性能。利用一些帕累托优化器,最近的工作已经从调整一个单一的,与时间相关的性能目标,两个本质上不同的目标,评估系统的不同性能方面,每个不同的愿望。在我们设计更好的优化器之前,需要做出的一个关键的工程决策是如何在调优过程中处理具有明确目标的性能需求。为此,社区采取了两种可选的优化模型:要么量化并将期望纳入指导调优的搜索目标,要么在搜索过程中不考虑期望,而只是在以后的决策过程中使用它们。然而,尽管是决定如何设计和定制优化器的关键决策,但对于在什么特定情况下应该选择哪个优化模型以及为什么选择,人们的理解相当有限。在本文中,我们试图缩小这一差距。首先,我们通过文献中的426篇论文和14个真实世界的需求数据集进行了回顾。在此基础上,我们进行了一项全面的实证研究,涵盖了15种最先进的性能要求模式,四种类型的愿望空间,三个帕累托优化器和八个现实世界的系统/环境的组合,导致1,296例调查。我们发现:(1)愿望的现实性是决定是否应该用它们来指导调整的关键因素;(2)给定的模式和现实愿望在客观景观中的位置对选择的重要性较小,但它们对改善的程度很重要;(3)对于不现实的期望,可用的调谐预算也会影响选择,但对于现实的期望,可用的调谐预算并不显著。
2023-01-09 cs.AI cs.SE
Automated Detection of Configuration-Specific Security Vulnerabilities via Patch Analysis
Federal University of Bahia(巴伊亚联邦大学);University of Notre Dame(圣母大学);Federal Rural University of Pernambuco(伯南布哥联邦农村大学);Federal University of Rio de Janeiro(里约热内卢联邦大学)
提出PatchLens静态技术,通过分析补丁与配置条件的对齐,自动生成漏洞影响条件(VIC),无需编译即可识别受影响的变体,实验表明VIC紧凑且CVE描述几乎不包含配置信息。
2026-06-25 cs.CR cs.SE
Predicting Software Performance with Divide-and-Learn
Loughborough University(拉夫堡大学);University of Birmingham(伯明翰大学)
针对高度可配置软件系统性能预测中配置空间稀疏性问题,提出分而治之学习方法DaL,通过划分样本并构建正则化深度神经网络局部模型,在八个系统上优于现有方法,准确率提升达1.94倍。
2024-02-04 cs.AI cs.PF cs.SE
Adapting Multi-objectivized Software Configuration Tuning
University of Birmingham(伯明翰大学)
针对元多目标化软件配置调优中固定权重依赖试错的问题,提出 AdMMO 自适应权重方法及部分重复保留机制,在 71% 场景中优于现有方法,最高加速 2.2–20 倍。
2024-04-06 cs.AI cs.DC cs.SE