2005 · 84 citations · 15 references
EngineeringComputer ArchitectureSoftware EngineeringSoftware AnalysisOptimized CodeData ScienceStack SamplingParallel ComputingCompilersPerformance PredictionDynamic CompilationProfiling ToolComputer EngineeringComputer SciencePerformance Analysis ToolStatic Program AnalysisRuntime SystemCall Path ProfilingProgram AnalysisSoftware TestingCall GraphParallel ProgrammingPerformance PortabilitySystem Software
Call path profiling associates resource consumption with the calling context in which resources were consumed. We describe the design and implementation of a low-overhead call path profiler based on stack sampling. The profiler uses a novel sample-driven strategy for collecting frequency counts for call graph edges without instrumenting every procedure's code to count them. The data structures and algorithms used are efficient enough to construct the complete calling context tree exposed during sampling. The profiler leverages information recorded by compilers for debugging or exception handling to record call path profiles even for highly-optimized code. We describe an implementation for the Tru64/Alpha platform. Experiments profiling the SPEC CPU2000 benchmark suite demonstrate the low (2%-7%) overhead of this profiler. A comparison with instrumentation-based profilers, such as gprof, shows that for call-intensive programs, our sampling-based strategy for call path profiling has over an order of magnitude lower overhead.
15
Susan L. Graham, Peter B. Kessler, Marshall Kirk McKusick · 1982 · 973 citations
Jennifer M. Anderson, Lance M. Berc, Jeffrey A. Dean et al. · ACM Transactions on Computer Systems · 1997 · 474 citations · Full text