Mühlbauer, StefanApel, SvenSiegmund, NorbertGrunske, LarsSiegmund, JanetVogelsang, Andreas2022-01-192022-01-192022978-3-88579-714-2https://dl.gi.de/handle/20.500.12116/37978Performance changes of configurable software systems can occur and persist throughout their lifetime. Finding optimal configurations and configuration options that influence performance is already difficult, but in the light of software evolution, configuration-dependent performance changes may lurk in a potentially large number of different versions of the system. Building on previous work, we combine two perspectives---variability and time---and devise an approach to identify configuration-dependent performance changes retrospectively across the software variants and versions of a software system. In a nutshell, we iteratively sample pairs of configurations and versions and measure the respective performance, which we use to actively learn a model that estimates how likely a commit introduces a performance change. For such commits, we infer the configuration options that best explain observed performance changes. Pursuing a search strategy to measure selectively and incrementally further pairs, we increase the accuracy of identified change points related to configuration options and interactions. Our evaluation with both real-world software systems and synthesized data demonstrates that we can pinpoint performance shifts to individual configuration options and commits with high accuracy and at scale.enSoftware PerformanceConfigurable Software SystemsSoftware EvolutionIdentifying Software Performance Changes Across Variants and VersionsText/Conference Paper10.18420/se2022-ws-0251617-5468