White-Box Performance-Influence Models: A Profiling and Learning Approach
This work addresses performance debugging and system understanding for developers of configurable software, though it is incremental as it builds on existing profiling and modeling techniques.
The authors tackled the problem of understanding how configuration options affect performance in software systems by proposing a white-box approach that models performance at the method level, demonstrating its efficiency in identifying configuration-relevant methods and learning accurate models across 9 real-world Java systems.
Many modern software systems are highly configurable, allowing the user to tune them for performance and more. Current performance modeling approaches aim at finding performance-optimal configurations by building performance models in a black-box manner. While these models provide accurate estimates, they cannot pinpoint causes of observed performance behavior to specific code regions. This does not only hinder system understanding, but it also complicates tracing the influence of configuration options to individual methods. We propose a white-box approach that models configuration-dependent performance behavior at the method level. This allows us to predict the influence of configuration decisions on individual methods, supporting system understanding and performance debugging. The approach consists of two steps: First, we use a coarse-grained profiler and learn performance-influence models for all methods, potentially identifying some methods that are highly configuration- and performance-sensitive, causing inaccurate predictions. Second, we re-measure these methods with a fine-grained profiler and learn more accurate models, at higher cost, though. By means of 9 real-world Java software systems, we demonstrate that our approach can efficiently identify configuration-relevant methods and learn accurate performance-influence models.