基于判别回归树的差分性能预测
Differential Performance Debugging with Discriminant Regression Trees
摘要:
差分性能调试是一种发现性能问题的技术。它适用于程序的性能对于不同类别的输入(出乎意料地)不同的情况。我们的任务是解释不同的输入类之间的程序内部的渐近性能的差异。我们提出了一种基于判别回归树(DRT)学习问题的数据驱动技术,其目标是区分不同类别的输入。我们提出了一种新的算法DRT学习,首先聚类数据到功能集群,捕获不同的渐近性能类,然后调用现成的决策树学习算法来解释这些集群。我们专注于线性功能集群和适应经典的聚类算法(K-均值和光谱)来产生它们。对于K-means算法,我们将聚类质心的概念从一个点推广到一个线性函数。我们通过定义一个新的核函数来捕捉两个数据点之间的线性相似性的概念,从而适应谱聚类。我们评估我们的方法组成的Java程序,我们感兴趣的调试性能的基准测试。我们表明,我们的算法显着优于其他著名的回归树学习算法的运行时间和分类精度。
英文摘要:
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 notion of the cluster centroid from a point to a linear function. We adapt spectral clustering by defining a novel kernel function to capture the notion of linear similarity between two data points. We evaluate our approach on benchmarks consisting of Java programs where we are interested in debugging performance. We show that our algorithm significantly outperforms other well-known regression tree learning algorithms in terms of running time and accuracy of classification.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。