DeadSpy: a tool to pinpoint program inefficiencies

DeadSpy: a tool to pinpoint program inefficiencies
复制标题

DeadSpy:查明程序效率低下的工具

DOI:
--
复制
发表时间:
2012
期刊:
IEEE/ACM International Symposium on Code Generation and Optimization
影响因子:
--
通讯作者:
J. Mellor
J. Mellor
中科院分区:
--
文献类型:
--
作者:
Milind Chabbi;J. Mellor

文献摘要

被引文献

相似文献

软件系统经常遭受各种类型的性能低效率,导致数据结构的选择,缺乏设计的性能,和无效的编译器优化。期望避免不必要的操作,特别是存储器访问。在本文中,我们描述了DeadSpy -一个动态检测给定执行中对内存的每个死写并向程序员提供可操作反馈的工具。此工具提供了一种识别死写的方法,这是性能低下的常见症状。我们对SPEC CPU 2006基准测试的分析表明,死写的比例高得惊人。事实上,我们观察到SPEC CPU 2006 gcc基准在其引用输入中平均有61%的死写。DeadSpy指出了导致这种低效率的源代码行。在几个具有高死写的案例研究中,通过简单的代码重组来消除死写,可以显著提高性能。对于gcc来说,避免死写可以将某些输入的运行时间缩短多达28%,平均缩短14%。我们建议将死写消除作为性能调优中的一个重要步骤。
Software systems often suffer from various kinds of performance inefficiencies resulting from data structure choice, lack of design for performance, and ineffective compiler optimization. Avoiding unnecessary operations, and in particular memory accesses, is desirable. In this paper, we describe DeadSpy --- a tool that dynamically detects every dead write to memory in a given execution and provides actionable feedback to the programmer. This tool provides a methodical way to identify dead writes, which is a common symptom of performance inefficiencies. Our analysis of the SPEC CPU2006 benchmarks showed that the fraction of dead writes is surprisingly high. In fact, we observed that the SPEC CPU2006 gcc benchmark has 61% dead writes on average across its reference inputs. DeadSpy pinpoints source lines contributing to such inefficiencies. In several case studies with high dead writes, simple code restructuring to eliminate dead writes improved their performance significantly. For gcc, avoiding dead writes improved its running time by as much as 28% for some inputs and 14% on average. We recommend dead write elimination as an important step in performance tuning.