BY MARKUS SPRUNCK
A small agent process connects to a running Java Virtual Machine and collects call stack information of the running process. The result is a live picture of the dynamic call graph. (see http://yaca-monitor-webgl.appspot.com/bin/YacaAgent.zip)
Most software developers spend a large portion of their available coding time with the attempt to understand existing legacy source code, frameworks, medium level design and the typical call dependencies in a software. Debugging application to find out the call graph and control flow is extremely time consuming. You set a break-point and analyse the call stack to find the way across all the layers and components of the program.
This experiment is based on my previous work and article How to Enhance Static Call-Graph Analysis with Dynamic Data from Profiling? The big difference is that I removed all the static analysis data and introduced a high performance 3D rendering based on webGL. To understand what happens in a piece of software it is just needed to have a look at what really happens. Analyse real world software results in hundreds or even thousands of active method call within some seconds. The important point is to render just the relevant information.
The Solution consists of two parts: