Friday, July 13, 2001 (a)

A sequence of screenshots that show off two new facilities of GCspy: the new way of denoting zero values and also the event filtering facilities. The application and VM configuration are described in a previous report.

Shot 1: End Young GC (Used Space View)

Here I've paused the execution before the first old GC, just after a young GC has completed (see the Current Activity label). The obvious change is that a new way of denoting zero values has been adopted. Rather than using smaller black tiles (like shot 1 of a previous report), now zero values are denoted with a "hollow" tile with a think border. Richard Jones encouraged me to adopt this policy to avoid some "wavy line" problems that were occuring when smaller tiles were used (most notably in shot 6 of a previous report). The goal is to used a representation that allows the user's eye to be "caught" by the non-zero tiles (i.e. the filled-in ones) and not the zero ones. I think the hollow tiles with the subtle border achieve this better than the smaller filled-in ones. See also shots 7 and 8 further down.

Shot 2: Events Menu (Used Space View)

This shot shows the Events menu, which allows some filtering of events (i.e. being able to turn them one and off). Here we can see that the Start Young GC events have been turned off, i.e. they will not be shown by the visualiser. In fact, this mechanism notifies the VM that some events should not be visualised. Hence, the VM does not spend unnecessary time collecting the data needed to visualise those events and execution speeds up.

Shot 3: Step One (Used Space View)

This shot follows from the previous one after pressing the Step One button. Notice that the Start Young GC event was skipped and we went straight to the following End Young GC event (see the Current Activity label).

Shot 4: End Old GC (Used Space View)

Now, we've moved forward to the end of the first old GC. To do this I had to manually pause the execution when it reached the appropriate point. I'm working on extending the event filtering facilities to also force an automatic pause after some events or delay the execution by a given amount of time to make things a bit clearer to the observer.

Shot 5: Events Menu (Used Space View)

As shown in the picture, I've now turned off all events, apart from the End Sweeping Phase one. So, if the user is interested only in the outcomes of old generation GCs, they will not see anything else.

Shot 6: Step One (Used Space View)

This shot follows the previous one after pressing the Step One button, which took us directly to the end of the next old GC. This took only a few seconds, rather than the considerably longer time that it would have taken if all the young-generation-related events were switched on.

Shot 7: End Young GC (Free Chunks View)

This shot is taken a bit later on and illustrates the new way of denoting zero values for the Free Chunks view. Compare it to shot 4 of a previous report.

Shot 8: End Young GC (Promotion View)

Finally, this one illustrates the new way of denoting zero values for the Promotion view. Compare it to shot 5 of a previous report.


GCspy is developed and maintained by Tony Printezis.
The main GCspy page is here.
If you have any comments, feedback, suggestions, etc. please feel free to e-mail me.