@proceedings {392, title = {Effective Runtime Exploration of the Inter-Procedural Control Flow in Java Applications}, journal = {8th ACM SIGAPP/SIGPLAN International Conference on the Principles and Practice of Programming in Java}, year = {2010}, month = {09/2010}, publisher = {ACM Press}, address = {Vienna, Austria}, abstract = {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.}, issn = {978-1-4503-0269-2}, doi = {10.1145/1852761.1852785}, attachments = {http://gsd.uwaterloo.ca/sites/default/files/pppj10-paper25_camera_ready.pdf}, author = {Philippe Moret and Walter Binder and Abbas Heydarnoori and Danilo Ansaloni} }