2016 IEEE Working Conference on Software Visualization (VISSOFT)
Download PDF

Abstract

Detecting performance problems that infrequently occur can be very difficult with traditional profilers. Most profilers only show the average time of execution or the total time a method contributes to the overall program's execution time. Most profilers do not explain or show why different control paths within a method executed may have resulted in variable execution times. When debugging concurrent programs for performance problems, the complexity and variability in execution time can potentially be even greater. In this paper we take a first step in visualizing individual method's different execution paths within multithreaded Java programs. We restrict our domain to looking at critical sections for this initial analysis, as variability in critical sections may cause more noticeable performance variation. Our software visualization tool, Critical Section Investigator (CSI), builds on the visualization and interaction techniques in previous works like KCachegrind with several enhancements. The result of our work is the first tool to our knowledge that visually shows potential performance differences in synchronized methods in Java programs using a profiling and storytelling structure.
Like what you’re reading?
Already a member?
Get this article FREE with a new membership!

Related Articles