Abstract execution: A technique for efficiently tracing programs
- 1 December 1990
- journal article
- Published by Wiley in Software: Practice and Experience
- Vol. 20 (12) , 1241-1258
- https://doi.org/10.1002/spe.4380201205
Abstract
Many areas of computer performance analysis require detailed traces of events that occur during a program's execution. Collecting traces is expensive. The additional code required to record events greatly slows a program's execution. In addition, the resulting trace files can grow unmanageably large. This paper describes a technique called abstract execution that alleviates both problems.Abstract execution records a small set of events during the traced program's execution. These events serve as input to an abstract version of the program that generates a full trace by re‐executing selected portions of the original program. This process greatly reduces both the cost of tracing the original program and the size of the trace files. The cost of regenerating a trace is insignificant in comparison to the cost of applications that use it.This paper also describes a system called AE that implements Abstract Execution. The paper contains measurements that demonstrate that AE can efficiently trace large programs.Keywords
This publication has 9 references indexed in Scilit:
- Techniques for efficient inline tracing on a shared-memory multiprocessorACM SIGMETRICS Performance Evaluation Review, 1990
- Interprocedural slicing using dependence graphsACM Transactions on Programming Languages and Systems, 1990
- Generation and analysis of very long address tracesPublished by Association for Computing Machinery (ACM) ,1990
- Mache: no-loss trace compactionPublished by Association for Computing Machinery (ACM) ,1989
- TRAPEDS: producing traces for multicomputers via execution driven simulationPublished by Association for Computing Machinery (ACM) ,1989
- ATUM: a new technique for capturing address traces using microcodeACM SIGARCH Computer Architecture News, 1986
- Program SlicingIEEE Transactions on Software Engineering, 1984
- An execution profiler for modular programsSoftware: Practice and Experience, 1983
- Cache MemoriesACM Computing Surveys, 1982