Visualizing the performance of higher-order programs

  • Authors:
  • Oscar Waddell;J. Michael Ashley

  • Affiliations:
  • Indiana University;University of Kansas

  • Venue:
  • Proceedings of the 1998 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
  • Year:
  • 1998

Quantified Score

Hi-index 0.00

Visualization

Abstract

Profiling can provide the information needed to identify performance bottlenecks in a program, but the programmer must understand its relation to the program source in order to use this information. This is difficult due to the tremendous volume of data collected. Moreover, program transformations such as macro expansion and procedure inlining can obscure the relationship between the source and object code. Higher-order programs present additional challenges due to complex control flow and because they often consist of many small, often anonytnous, procedures whose individual performance properties may be less interesting than their characteristics as a group.To address these challenges we have implemented a profiler and interactive profile visualizer and integrated them into an optimizing Scheme compiler. The profiler instruments target code and maintains correlations with the original source despite compiler optimizations that can eliminate, duplicate, or move code. The visualizer operates as a source-code browser with features to examine execution counts and execution times from several perspectives. It supports the programmer in identifying program hot spots as well as code regions responsible for or affected by those hotspots. It also supports profile differencing which permits the programmer to study program behavior in different execution contexts.Our experience suggests that visualization tools can help to present raw profile data in a meaningful way. The tool can synthesize a high-level picture of program performance while still giving the programmer the ability to explore the details in interesting regions of code.