Effective Runtime Exploration of the Inter-Procedural Control Flow in Java Applications

TitleEffective Runtime Exploration of the Inter-Procedural Control Flow in Java Applications
Publication TypeConference Proceedings
Year of Publication2010
AuthorsMoret, P., W. Binder, A. Heydarnoori, and D. Ansaloni
Conference Name8th ACM SIGAPP/SIGPLAN International Conference on the Principles and Practice of Programming in Java
Date Published09/2010
PublisherACM Press
Conference LocationVienna, Austria

Statically exploring the inter-procedural control flow of object-oriented applications is often difficult because of the use of abstraction, polymorphism, and dynamic binding. To ease this problem, in this tool demonstration, we present a new profiler that dynamically explores the inter-procedural control flow of Java applications while they are executing. Our profiler visualizes the complete Calling Context Tree (CCT) with various dynamic metrics, such as method invocations, executed bytecodes, or allocated objects, and enables efficient navigation in large CCTs comprising up to several millions of nodes. We show that our tool can render data quite fast with response times in the range of 14--204ms upon user interactions. Thanks to a carefully tuned incremental data representation, the profiling data produced by a running application can be updated several times per second on a standard laptop. The visualization can also show recently active parts of the application. The collection of profiling data uses an aspect-based dynamic program analysis technique that simplifies extension and customization of the tool.

Refereed DesignationRefereed
pppj10-paper25_camera_ready.pdf558.46 KB