# Learning Software Configuration Spaces: A Systematic Literature Review

arXiv: https://arxiv.org/abs/1906.03018 · HTML: https://mlsanity.com/paper/1906.03018/

## Key facts

- Cited by 14 papers in the map (data through 14 Oct 2026).
- First posted on arXiv 7 Jun 2019.

## Built on by (most cited first, 14 of 14)

- [CodePori: Large-Scale System for Autonomous Software Development Using Multi-Agent Technology](https://mlsanity.com/paper/2402.01411/) (2024)
- [Unicorn: Reasoning about Configurable System Performance through the lens of Causality](https://mlsanity.com/paper/2201.08413/) (2022)
- [Deep Configuration Performance Learning: A Systematic Survey and Taxonomy](https://mlsanity.com/paper/2403.03322/) (2024)
- [Machine Learning for Software Engineering: A Tertiary Study](https://mlsanity.com/paper/2211.09425/) (2022)
- [CaRE: Finding Root Causes of Configuration Issues in Highly-Configurable Robots](https://mlsanity.com/paper/2301.07690/) (2023)
- [Linux Kernel Configurations at Scale: A Dataset for Performance and Evolution Analysis](https://mlsanity.com/paper/2505.07487/) (2025)
- [An Overview of Recommender Systems and Machine Learning in Feature Modeling and Configuration](https://mlsanity.com/paper/2102.06634/) (2021)
- [Prompting for Performance: Exploring LLMs for Configuring Software](https://mlsanity.com/paper/2507.09790/) (2025)
- [Pimp My LLM: Leveraging Variability Modeling to Tune Inference Hyperparameters](https://mlsanity.com/paper/2602.17697/) (2026)
- [When to Use Which? Benchmarking Optimisers for Configurable Systems under Varying Budgets](https://mlsanity.com/paper/2607.16476/) (2026)
- [Family-Based Fingerprint Analysis: A Position Paper](https://mlsanity.com/paper/2209.15620/) (2022)
- [Solving Multi-Configuration Problems: A Performance Analysis with Choco Solver](https://mlsanity.com/paper/2310.02658/) (2023)
- [TuxBot: Semantic-Aware Online OS Tuning with Large Language Models](https://mlsanity.com/paper/2605.15026/) (2026)
- [Transpiler Autotuning with Predictive Models for Quantum Circuit Optimization](https://mlsanity.com/paper/2607.29145/) (2026)

## Abstract (arXiv)

Most modern software systems (operating systems like Linux or Android, Web browsers like Firefox or Chrome, video encoders like ffmpeg, x264 or VLC, mobile and cloud applications, etc.) are highly-configurable. Hundreds of configuration options, features, or plugins can be combined, each potentially with distinct functionality and effects on execution time, security, energy consumption, etc. Due to the combinatorial explosion and the cost of executing software, it is quickly impossible to exhaustively explore the whole configuration space. Hence, numerous works have investigated the idea of learning it from a small sample of configurations' measurements. The pattern "sampling, measuring, learning" has emerged in the literature, with several practical interests for both software developers and end-users of configurable systems. In this survey, we report on the different application objectives (e.g., performance prediction, configuration optimization, constraint mining), use-cases, targeted software systems and application domains. We review the various strategies employed to gather a representative and cost-effective sample. We describe automated software techniques used to measure functional and non-functional properties of configurations. We classify machine learning algorithms and how they relate to the pursued application. Finally, we also describe how researchers evaluate the quality of the learning process. The findings from this systematic review show that the potential application objective is important; there are a vast number of case studies reported in the literature from the basis of several domains and software systems. Yet, the huge variant space of configurable systems is still challenging and calls to further investigate the synergies between artificial intelligence and software engineering.
