Execution profiling blueprints

Alexandre Bergel, Felipe Bañados, Romain Robbes, Walter Binder · Software Practice and Experience · 2011

SUMMARY Although traditional approaches to code profiling help locate performance bottlenecks, they offer only limited support for removing these bottlenecks. The main reason is the lack of detailed visual runtime information to identify and eliminate computation redundancy. We provide three profiling blueprints that help identify and remove performance bottlenecks. Thestructural distribution blueprintgraphically represents the CPU consumption share for each method and class of an application. Thebehavioral distribution blueprintdepicts the distribution of CPU consumption along method invocations and hints at method candidates for caching optimizations. Thebehavioral evolution blueprintcompares profiles of different versions of a software system and highlights performance‐critical changes in the system. These three blueprints helped us to significantly optimize Mondrian, an open source visualization engine. Our implementation is freely available for the Pharo development environment and has been evaluated in a number of different scenarios. Copyright © 2011 John Wiley & Sons, Ltd.

Read the paper · More papers on PaperTik