Differential Performance Debugging with Discriminant Regression Trees
Saeid Tizpaz-Niari, Pavol Cerny, Bor-Yuh Evan Chang, Ashutosh Trivedi

TL;DR
This paper introduces a novel data-driven method using discriminant regression trees to identify and explain performance differences across input classes in programs, improving debugging efficiency.
Contribution
It presents a new algorithm for discriminant regression tree learning that clusters data into functional groups before applying decision trees, enhancing performance debugging.
Findings
Outperforms existing regression tree algorithms in speed and accuracy
Effectively identifies performance classes in Java program benchmarks
Uses novel clustering techniques for functional performance analysis
Abstract
Differential performance debugging is a technique to find performance problems. It applies in situations where the performance of a program is (unexpectedly) different for different classes of inputs. The task is to explain the differences in asymptotic performance among various input classes in terms of program internals. We propose a data-driven technique based on discriminant regression tree (DRT) learning problem where the goal is to discriminate among different classes of inputs. We propose a new algorithm for DRT learning that first clusters the data into functional clusters, capturing different asymptotic performance classes, and then invokes off-the-shelf decision tree learning algorithms to explain these clusters. We focus on linear functional clusters and adapt classical clustering algorithms (K-means and spectral) to produce them. For the K-means algorithm, we generalize the…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
