History log of /art/tools/ahat/src/ObjectsHandler.java
Revision Date Author Comments
f629cfdbf6da3409aff177352e9ff41209b4570c 12-Dec-2016 Richard Uhler <ruhler@google.com> ahat: add support for diffing two heap dumps.

ahat now has the option to specify a --baseline hprof file to use as
the basis for comparing two heap dumps. When a baseline hprof file is
provided, ahat will highlight how the heap dump has changed relative
to the hprof file.

Differences that are highlighted include:
* overall heap sizes
* total bytes and number of allocations by type
* new and deleted instances of a given type
* retained sizes of objects
* instance fields, static fields, and array elements of modified objects

Also:
* Remove support for showing NativeAllocations, because I haven't ever
found it to be useful, it is not obvious what a "native" allocation
is, and I don't feel like adding diff support for them.
* Remove help page. Because it is outdated, not well maintained, and
not very helpful in the first place.

Test: m ahat-test
Test: Run in diff mode for tests and added new tests for diff.
Test: Manually run with and without diff mode on heap dumps from system server.
Bug: 33770653
Change-Id: Id9a392ac75588200e716bbc3edbae6e9cd97c26b
cda4f2e72f569e0a0d6119c1c75284fd44df79ab 09-Sep-2016 Richard Uhler <ruhler@google.com> Refactor ahat's perflib api.

This change substantially refactors how ahat accesses heap dump data.
Rather than use the perflib API directly with some additional
information accessed on the side via AhatSnapshot, we introduce an
entirely new API for accessing all the information we need from a heap
dump. Perflib is used when processing the heap dump to populate the
information initially, but afterwards all views and handlers go
through the new com.android.ahat.heapdump API.

The primary motivation for this change is to facilitate adding support
for diffing two heap dumps to ahat. The new API provides flexibility
that will make it easier to form links between objects in different
snapshots and introduce place holder objects to show when there is an
object in another snapshot that has no corresponding object in this
snapshot.

A large number of test cases were added to cover missing cases
discovered in the process of refactoring ahat's perflib API.

The external user-facing UI may have minor cosmetic changes, but
otherwise is unchanged.

Test: m ahat-test, with many new tests added.
Bug: 33770653

Change-Id: I1a6b05ea469ebbbac67d99129dd9faa457b4d17e
38f9eba1ad2094205410b47cd72ae3e4152c9432 11-Nov-2015 Richard Uhler <ruhler@google.com> Annotate root objects and show their types.

The summaries for root objects are now prefixed with "(root)" to show
they are roots, and the object's root types are listed in the object
view.

Bug: 23784153
Change-Id: Ib52ccb59cf0e3f28ac754c6caa564ebef34866ea
1af86f17dc9a47faf1c6cd7ccd23d248fdc615ab 29-Oct-2015 Richard Uhler <ruhler@google.com> ahat: limit default number of results shown.

Previously, ahat had performance issues rendering large pages. This
change causes ahat to limit the number results shown in large pages by
default, requiring the user to explicitly request more information if
they care about it.

Bug: 25114227
Change-Id: Ief67396be254be4c84e6971f5b903a701206e17b
c21e4e67861f38e2ebce3cce633d01fcb8de5f1f 01-Sep-2015 Richard Uhler <ruhler@google.com> Make format args explicit in DocString.

Previously it was not clear that passing a single argument to
DocString.text, DocString.append, or DocString.uri would be treated as
a format string. With this change, the 'text', 'append', and 'uri'
methods take literal strings, and the new 'format', 'appendFormat',
and 'formattedUri' methods take format strings.

Bug: 23782192
Change-Id: I9a094575f0831de6659033052305f918c71ac8b7
b730b78dac047c6d8ead93ad77605bcb7414f5ce 16-Jul-2015 Richard Uhler <ruhler@google.com> ahat - An android heap dump viewer. Initial checkin.

ahat is an android-aware heap dump viewer based on perflib with a
simple html interface.

Change-Id: I7c18a7603dbbe735f778a95cd047f4f9ec1705ef