Understanding performance and related issues in a complex system requires analyzing where and why the program spends its resources. In a reactive system such as a interactive application or a server, it is important for understanding that one be able to associate resource usage with the events, be they user actions or client requests, that triggered the corresponding execution. As part of our software visualization and analysis efforts we have developed a system that lets the programmer define what is meant by an event and then to track the resources used in processing that event through the system. The resultant data is currently used to produce visualizations of event-based resource utilization.
Steven P. Reiss