Coz: 用因果分析找寻有重要价值的代码

摘要:提高性能是软件开发者关注的核心问题。为了找到优化的机会,开发人员依赖于软件分析工具。然而,这些分析工具只能报告程序的时间消耗情况:对于这部分代码的优化可能对性能没有任何影响。过去的分析工具因此浪费了开发人员的时间,并且使他们难以发现重要的优化机会。 本文介绍了因果分析。与过去的分析方法不同,因果分析准确地指示了程序员应该专注于优化的地方,并量化了潜在的影响。因果分析通过在程序执行过程中运行性能实验来实现。每个实验通过虚拟加速代码来计算潜在优化的影响:插入导致其他同时运行的代码变慢的暂停。关键的洞察是,这种减速效果与运行那行代码更快的效果相同,因此“虚拟”加速了它。 我们提出了一个名为Coz的因果分析工具,并在一系列经过优化的应用程序上进行评估:Memcached,SQLite和PARSEC基准套件。Coz发现了以前未知的既重要又具有针对性的优化机会。在Coz的指导下,我们将Memcached的性能提高了9%,SQLite提高了25%,并将六个PARSEC应用程序加快了高达68%;在大多数情况下,这些优化只涉及修改不超过10行代码。

作者:Charlie Curtsinger and Emery D. Berger

论文ID:1608.03676

分类:Performance

分类简称:cs.PF

提交时间:2016-08-15

PDF 下载: 英文版 中文版pdf翻译中