1. A non-transitory program storage device, readable by a program control device, comprising: program code to obtain a plurality of callstack samples periodically at specified time intervals; program code to identify occurrences of one or more specified events in the plurality of callstack samples, wherein each of the specified events is selected from the group consisting of a cache miss, an execution stall, an operating system event, and a call to at least one specific function from a list of automatically suggested functions; program code to display, for at least a portion of the callback samples, a chart of callstack depth versus a sample indicator; program code to highlight a portion of the display in response to selection of a location in the chart or selection of a function; and program code to display a list of functions associated with the highlighted portion of the display.