Continuous Profiling: Where Have All the Cycles Gone?
This article describes the Digital Continuous Profiling Infrastructure, a sampling-based profiling system designed to run continuously on production systems. The system supports multiprocessors, works on unmodified executables, and collects profiles for entire systems, including user programs, shared libraries, and the operating system kernel. Samples are collected at a high rate (over 5200 samples/sec. per 333MHz processor), yet with low overhead (1-3% slowdown for most workloads). Analysis tools supplied with the profiling system use the sample data to produce a precise and accurate accounting, down to the level of pipeline stalls incurred by individual instructions, of where time is being spent. When instructions incur stalls, the tools identify possible reasons, such as cache misses, branch mispredictions, and functional unit contention. The fine-grained instruction-level analysis guides users and automated optimizers to the causes of performance problems and provides important insights for fixing them.
- View record in Scopus
Keywords: C.4 [Computer Systems Organization]: Performance of Systems ; D.2.2 [Software Engineering]: Tools and Techniques - ; profiling tools ; D.2.6 [Programming Languages]: Programming Environments - ; performance monitoring ; Buffer storage ; Computer software ; Data acquisition ; Multiprocessing systems ; Optimization ; Storage allocation (computer) ; DIGITAL continuous profiling infrastructure ; Fine grained instruction level analysis ; Operating system kernel ; D.4 [Operating Systems]: General ; Computer hardware ; Sampling based profiling system ; Computer operating systems ; Computer programming languages ; Computer systems ; Software engineering ; Continuous profiling ; Performance monitoring hardware ; Program analysis ; Computer operating systems
Record created on 2007-01-18, modified on 2016-08-08