首页> 外文学位 >Progressive profiling: A methodology based on profile propagation and selective profile collection.
【24h】

Progressive profiling: A methodology based on profile propagation and selective profile collection.

机译:渐进概要分析:一种基于概要文件传播和选择性概要文件收集的方法。

获取原文
获取原文并翻译 | 示例

摘要

In recent years, Profile-Based Optimization (PBO) has become a key technique in program optimization. In PBO, the optimizer uses information gathered during previous program executions to guide the optimization process. Even though PBO has been implemented in many research systems and some software companies, there has been little research on how to make PBO effective in practice.; In today's software industry, one major hurdle in applying PBO is the conflict between the need for high-quality profiles and the lack of time for long profiling runs. For PBO to be effective, the profile needs to be representative of how the users or a particular user runs the program. For many modern applications that are large and interactive, it takes a significant amount of time to collect high-quality profiles. This problem will only become more prominent as application programs grow more complex. A lengthy profiling process is especially impractical in software production environments, where programs are modified and rebuilt almost daily. Without enough time for extensive profiling runs, the benefit from applying PBO is severely limited. This in turn hampers the interest in running PBO and increases the dependency on hand tuning in software development and testing.; In order to obtain high-quality profiles in a software production environment without lengthening the daily build cycle, we seek to change the current practice where a new profile must be generated from scratch for each new program version. Most of today's profiles are generated for a specific program version and become obsolete once the program changes. We propose progressive profiling , a new profiling methodology that propagates a profile across program changes and re-uses it on the new version. We use static analysis to generate a mapping between two versions of a binary program, then use the mapping to convert an existing profile for the old version so that it applies to the new version. When necessary, additional profile information is collected for part of the new version to augment the propagated profile. Since the additional profile collection is selective, we avoid the high expense of re-generating the entire profile. With progressive profiling, we can collect profile information from different generations of a program and build a high-quality profile through accumulation over time, despite frequent revisions in a software production environment.; We present two different algorithms for matching binary programs for the purpose of profile propagation, and use common application programs to evaluate their effectiveness. We use a set of quantitative metrics to compare propagated profiles with profiles collected directly on the new versions. Our results show that for program builds that are weeks or even months apart, profile propagation can produce profiles that closely resemble directly collected profiles. To understand the potential for time saving, we implement a prototype system for progressive profiling and investigate a number of different system models. We use a case study to demonstrate that by performing progressive profiling over multiple generations of a program, we can save a significant amount of profiling time while sacrificing little profile quality.
机译:近年来,基于概要的优化(PBO)已成为程序优化中的关键技术。在PBO中,优化器使用在先前程序执行期间收集的信息来指导优化过程。尽管PBO已在许多研究系统和一些软件公司中实施,但很少有关于如何使PBO在实践中有效的研究。在当今的软件行业中,应用PBO的一大障碍是对高质量配置文件的需求与缺乏长时间进行性能分析的时间之间的冲突。为了使PBO生效,配置文件必须代表用户或特定用户如何运行程序。对于许多大型且交互式的现代应用程序,需要花费大量时间来收集高质量的配置文件。随着应用程序变得越来越复杂,这个问题只会变得更加突出。在软件生产环境中,冗长的分析过程尤其不切实际,在该环境中,几乎每天都要修改和重建程序。如果没有足够的时间进行大量的分析运行,则使用PBO的收益将受到严重限制。反过来,这会妨碍对运行PBO的兴趣,并增加了软件开发和测试中对手动调试的依赖性。为了在软件生产环境中获得高质量的配置文件而又不延长日常构建周期,我们试图改变当前的做法,即对于每个新程序版本,必须从头开始生成新的配置文件。当今的大多数配置文件都是针对特定程序版本生成的,并且在程序更改后已过时。我们建议 progressive profiling ,这是一种新的配置文件方法,可在程序更改中传播配置文件,并在新版本中重复使用。我们使用静态分析在二进制程序的两个版本之间生成映射,然后使用该映射将旧版本的现有配置文件转换为适用于新版本的配置文件。必要时,将为新版本的一部分收集其他配置文件信息,以扩展传播的配置文件。由于附加配置文件集合是选择性的,因此我们避免了重新生成整个配置文件的高额费用。借助渐进的性能分析,尽管在软件生产环境中进行了频繁的修订,我们仍可以从一段时间的累积中收集程序信息,并通过累积积累来构建高质量的程序。我们提供两种不同的算法来匹配二进制程序,以进行概要文件传播,并使用常见的应用程序来评估其有效性。我们使用一组定量指标将传播的配置文件与直接在新版本上收集的配置文件进行比较。我们的结果表明,对于相隔数周甚至数月的程序构建,概要文件传播可以生成与直接收集的概要文件非常相似的概要文件。为了了解节省时间的潜力,我们实现了用于渐进分析的原型系统,并研究了许多不同的系统模型。我们使用一个案例研究来证明,通过对程序的多个世代进行渐进分析,我们可以节省大量的分析时间,同时又不会降低概要文件的质量。

著录项

  • 作者

    Wang, Zheng.;

  • 作者单位

    Harvard University.;

  • 授予单位 Harvard University.;
  • 学科 Computer Science.
  • 学位 Ph.D.
  • 年度 2001
  • 页码 117 p.
  • 总页数 117
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类 自动化技术、计算机技术;
  • 关键词

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号