Margaret
Martonosi, Anoop Gupta, and Thomas Anderson.
Tuning Memory Performance in Sequential and Parallel Programs. IEEE
Computer vol. 28, no. 4, April 1995, pages 32 - 40.
Abstract:
To improve program memory performance,
programmers and compiler writers can transform the application so that its
memory-referencing behavior better exploits the memory hierarchy. The challenge
in achieving these program transformations is overcoming the difficulty of
statically analyzing or reasoning about an application's referencing behavior
and interactions. In addition, many performance-monitoring tools collect
high-level information that is inadequately detailed to analyze specific memory
performance bugs. We describe MemSpy, a performance-monitoring tool we designed
to help programmers discern where and why memory bottlenecks occur. MemSpy
guides programmers toward program transformations that improve memory
performance through detailed statistics on cache-miss causes and frequency.
Because of the natural link between data-reference patterns and memory
performance, MemSpy helps programmers comprehend data structure and code segment
interactions by displaying statistics in terms of both the program's data and
code structures, rather than for code structures alone.