[Webkit-unassigned] [Bug 28819] New: Heap profiler: showing retainers

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Aug 28 14:16:16 PDT 2009


https://bugs.webkit.org/show_bug.cgi?id=28819

           Summary: Heap profiler: showing retainers
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: All
        OS/Version: All
            Status: UNCONFIRMED
          Severity: Normal
          Priority: P2
         Component: Tools / Tests
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: mnaganov at chromium.org
                CC: timothy at hatcher.name, pfeldman at chromium.org


Created an attachment (id=38753)
 --> (https://bugs.webkit.org/attachment.cgi?id=38753)
UI proposal

Hi Timothy,

I want to introduce another feature I want to add to heap profiler: an ability
to show retainers for objects, that is, to trace paths from objects to GC
roots. This helps a developer to understand, why a particular object can't be
GCed.

A typical usage scenario is as follows:

- a developer looks at heap statistics and finds objects taking too much space,
or not being collected, and she wonders why those objects are retained in heap;

- she invokes an action of showing object instances and retainers (e.g. by
double clicking on a row in heap stats grid);

- a pane opens (if not already opened) showing a list of instances; every
instance is presented as a row specifying the size of an instance (sizes may
vary, e.g. for instances of Object or Array), rows are sorted in decreasing
order (bigger instances first);

- every instance has an expansion triangle, by clicking on it all retainers of
the particular instance are listed hierarchically, down to GC roots.

The exploration of instances and retainers is done dynamically on a "live"
heap. It is actually not bound to a heap snapshot. An alternative approach
would be to keep complete heap snapshots and make instances and retainers view
per snapshot. But I'm against it, because as heap is mostly consist of object
references, it means that data with sizes comparable to heap sizes (dozens of
MB) will need to be transferred and stored in Inspector.

It means that objects and retainers pane isn't bound to heap snapshots (that's
why the show / hide button isn't on view's statusbar), and snapshots are only
serve for starting an inspection for a specified constructor.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list