This directory contains the supplementary material for the paper "Performance Modeling of Software Configurations Through the Lens of Scenario Theory" submitted to the ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE) 2026.
This work introduces a novel probabilistic framework to evaluate the guarantees that different sampling strategies offer for estimating performance bounds of configurable software systems. We leverage scenario theory to establish a foundation for analyzing sampling strategies beyond uniform random sampling, introducing measures such as posterior risk, posterior confidence, confidence discrepancy, and integrated confidence discrepancy.
The directory is structured as follows:
Readme.md: This file.data/sampling/: The raw sampling and measurement data used in the paper, organized by case study and sampling strategy.main.ipynb: The main Jupyter notebook containing the code used to analyze the data and produce the results in the paper.SRS-sampling.ipynb: The Jupyter notebook containing the code used to sample the data with the Statistical Recursive Search (SRS) algorithm.results/: Directory where generated plots and figures are saved (created automatically when running the notebooks).
The main notebook contains the complete analysis pipeline:
- Data processing: Loading and merging measurement data with sampling configurations
- Posterior risk calculation: Computing empirical probabilities for performance bounds
- Confidence analysis: Calculating posterior and prior confidence levels
- Visualization: Generating plots for confidence discrepancies and integrated confidence measures
- Results for RQ1: Confidence discrepancy analysis across different sampling strategies
- Results for RQ2: Sample size impact analysis on integrated confidence discrepancy
- Discussion plots: Detailed analysis for specific case studies (e.g., Polly)
Contains the implementation and execution of the Statistical Recursive Search (SRS) algorithm used as one of the evaluated sampling strategies.
To run the analysis, you need:
- Python 3.x
- Jupyter Notebook
- Required packages:
matplotlib,numpy,pandas,scipy,seaborn,collections,bisect,os
- Ensure all required Python packages are installed
- Run
main.ipynbto reproduce the analysis and generate figures - Generated plots will be saved in the
results/directory - Data files for TikZ/PGFPlots are saved in
data/sampling/for paper figure generation
The evaluation includes seven configurable software systems:
- 7z (Compression performance)
- Berkeley DB (Database performance)
- Dune (Scientific computing performance)
- Hipacc (Image processing performance)
- Java GC (Garbage collection performance)
- LLVM (Compiler performance)
- Polly (Loop optimization performance)
- Uniform Random
- Distance-based
- Solver-based
- Statistical Recursive Search (SRS)
- BAITAL (s=1 through s=5)
- Henard
- Grammar-based
The code produces:
- Confidence discrepancy plots for all case studies and sampling strategies
- Sample size analysis showing integrated confidence discrepancy trends
- Raw data files in CSV format for external plotting tools
- Statistical analysis results supporting the paper's research questions