|
|


The left end of the line is attached to the calling object's stripe. The line's vertical position along the caller's stripe suggests when the call occurred (e.g., early or late) in the calling method. A stripe's furthest extent down the view indicates the time of the method's return.
Stripes cascade to the right as one method sends a message to an object, whose responding method in turn sends a message to another object, and so on. Stripes are grouped in columns by thread, a thin black vertical line separating one column from another. The name of each thread appears at the top of its column in a fixed gray header area..
By default, the leftmost column is reserved for garbage collection information. (Although depicted as a thread, the garbage collection "thread" does not behave as a thread in several other aspects -- for example, it is not selectable as a thread). A thin rectangle appears in this column whenever an object is garbage collected. As with other objects and methods in the view, you left-click on the collected object to select it. Large raised gray rectangles represent garbage collection phases in the trace.
See also Using Slices in the Execution View for a detailed discussion of how this view may be used with slices and workspaces.
You may select methods, objects, threads, or individual method invocations from the execution view in various ways:
The Execution view will reflect the currently selected elements (whether they were selected in this view or another) by highlighting them in yellow. Selected objects, methods, or invocations will appear as a yellow highlight on the appropriate elements, and everything to the right of them in that thread. Selected threads will appear with highlighted headings.
Right-clicking on a stripe (object) or on a method name (or the whitespace below the line) produces a different popup menu. For cases of repetitive method calls from an object, Detect Repetition will visually consolidate the repetitive calls, and Remove Repetition will undo that visual consolidation. Select This Invocation will select this particular method invocation, deselecting other selections. If there are already method invocations selected, Add This Invocation to Current Selection will append this selection to the other method invocations selected.
The remaining popup menu options are active only when current selections
exist. Drill Down from Selected Items lets you open a view that is
restricted to the current selections. Create a New Slice will create
one or more new slices from the current selections.
You can create either a single slice From Selected Items or one slice
For Each Selected Item. Choosing Limit an Existing Slice presents
the set of execution slices you can choose to limit to Selected Items.
Normally, it's impossible to tell that an object has been garbage collected by inspecting stripes in a user thread. The only evidence of collection is a single rectangle in the GC thread column, probably well downstream of most method calls on the object. When chosen, Draw Collected Objects Empty causes the stripes of every collected object to appear in outline form, making the objects easy to identify as having been collected.
Detect All Repetitions changes the Execution View so that repetitive call sequences on the execution stack are summarized visually. A gray box summarizes the repetitions and replaces the individual call sequences, which instead appear as smaller gray boxes on the left, unless they are too numerous. A darker gray box on the right expands the first repetition in detail, and contains a repetition count at the bottom left. Further detail beyond this execution level is suppressed. Option Remove All Repetitions reverts to showing all call sequences individually.
Color by Slice colors the stripe, the horizontal line, and method name label based on the slice that the method invocation falls into. See Using Slices with the Execution View for more details.
A final option, Font Scaling, will make text grow and shrink
just like other elements of the view when it's zoomed. Text remains
a constant size by default.
Zooming can be done in several ways. One is to drag the mouse over a rectangular area to zoom in on. Another is to use the plus and minus keys to zoom in and out. Additional menu options remember previous zoom positions you have traversed, and allow you to return to them. Toggle Zoom alternates between the two most recent zoom positions viewed. If you use Mark Zoom to save the current zoom position, then you can go to it later using the option Zoom To Mark. Also, a partial history of zoom positions is kept, using the most recent branch taken. Thus you can move back and forth along this zoom path history, with Zoom Back and Zoom Forward.
Zooming changes both the vertical (time) dimension and the horizontal
dimension, whereas Expand Time and Compress Time rescale only
the (time) dimension of the view.
The Threads menu has additional entries, one per user thread. You can toggle each thread entry independently, to be viewed or hidden. If you want to view just a few threads out of many, use Hide All Threads to clear the view, then toggle the threads of interest.
Positioning the cursor over a stripe or to its immediate left displays the following information in the status line: thread name, class and method names, instance identifier, time of call (instantiation time in the case of constructors), and the cumulative time spent in the method. Positioning the cursor over a rectangle in the GC column identifies the garbage-collected object. Positioning the cursor elsewhere in the view displays only the thread name and time corresponding to the pointer's vertical position.
Selecting an object or method in this view and then consulting one of the Histogram views lets you compare the object or method to others of its class and explore dependencies among them.
|
|