|
|

A stripe in this view stands for every receiver of the message shown to the left of the stripe across occurrences of this pattern, as opposed to a single instance in other views. The stripe's color indicates the class that implements the corresponding method. This is usually the same color as the stripes of the actual receivers in the Execution view; the color will differ here only when the method is inherited from a superclass.
While the Execution Pattern view displays a single pattern at a time, it may contain hidden patterns or subpatterns—points of variance in the pattern. If so, you will see one or more indicators of the form n/m, which means "you are viewing (sub)pattern n out of m total." To see these hidden variants, left-click repeatedly on the indicator. There may be several such indicators scattered throughout the view.
Note that the stripe to the right of the indicator is only partially filled. The filled portion (always at the top) reflects the proportion of time consumed by the present pattern variant. The unfilled portion represents the cumulative time taken by the invisible variants. You will see the filled portion change height as you click to cycle through the patterns. The most time-consuming pattern is shown first; subsequent patterns take decreasing proportions of time.
As in the Execution view, time is mapped to the vertical dimension. However, "time" has a slightly different meaning here, because an execution pattern represents potentially many interactions. Though similar by definition, these interactions are nevertheless unlikely to consume identical amounts of time, either as a whole or in their constituent parts.
So time in the Execution Pattern view is actually summarized time,
which comes in two flavors:
Suppose an execution pattern summarizes six occurrences of similar interactions. If a given stripe is x total time units high, then x is the total time consumed in the corresponding method call of all six occurrences. If the stripe is y average time units high, then y is the average time expended in this method across the six occurrences, or y = x/6. Total time is the default; an entry in the Options menu lets you switch to average time.
You may select a method by left-clicking the mouse over the white space or stripe showing a number of invocations of that method. You may also select just the invocations of a specific pattern by right-clicking and using the popup menu (see below).
A pattern (and everything to the right of it) will appear highlighted in yellow if the method, or any of the individual invocations in the pattern, is currently selected in any view.
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.
Average Time toggles the view's time scale between average time and total time, as discussed above.
Option Live update when selection changes lets you control whether the view changes the pattern display as you make different method invocation selections. The default is to preserve the method invocation patterns first shown by the view, regardless of selection changes. Pressing the Update button changes the view to show patterns for the currently selected set of invocations. Selecting the Live Update option causes the view to update itself every time there is a change in the set of selected set of invocations.
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.
Positioning the cursor over a stripe or message displays the method and the class that implements it. Since each stripe can represent a collection of objects, object identifiers are omitted. Also shown is the total or average cumulative time for the method (depending on the time scale in force) and the number of calls to that method.
Positioning the cursor elsewhere in the view displays only the time corresponding to the pointer's vertical position. All time information is relative to the start time of the first (leftmost) call in the view.
See also Using Slices in the Execution Pattern View for a discussion of the effect of slices and workspaces on the Execution Pattern view.
The Execution view gives a more global view of execution behavior as a function of time. Its interactions with other views apply equally to the Execution Pattern view.
The Call Tree view is another way to view a summary of calling behavior. Unlike the Execution Pattern view, it does not take the sequence of method calls into account in its summarization. The Call Tree view can also show the calling paths leading to as well as those eminating from a set of method invocations.
|
|