A Tool for Monitoring Multithreaded Program Performance

This website describes ThreadMon, a monitoring tool for improving the performance of multithreaded programs. Traditional tools, e.g., gprof, thread analyzer, etc., present overall indications of performance, such as the total number of calls to each procedure, the time spent in each function, who called whom how often, etc. This information is not correlated with the passage of time. For time-critical programs, however, it is crucial to relate performance data to the events to which the program is responding: it is not enough to know where a program has spent its time, we must know when the program spent that time. In addition, to take full advantage of a multiprocessor, we need to know when the program is spending its time on which processors. Rather than present such information after the program has executed, we present it while the program is running, thus making it easy to relate our interactions with the subject program to the performance data being displayed.

This work was developed at Brown University and supported by a grant from Sun Microsystems.
The text of this web document was taken from a paper by Bryan M. Cantrill and Thomas W. Doeppner Jr., Department of Computer Science, Brown University, Providence, RI 02912-1910
Greg Foxman (gmf@cs.brown.edu)