Home | History | Annotate | only in /art/tools/ahat
Up to higher level directory
NameDateSize
ahat21-Aug-2018707
Android.mk21-Aug-20187K
etc/21-Aug-2018
README.txt21-Aug-20184.4K
src/21-Aug-2018

README.txt

      1 AHAT - Android Heap Analysis Tool
      2 
      3 Usage:
      4   java -jar ahat.jar [OPTIONS] FILE
      5     Launch an http server for viewing the given Android heap dump FILE.
      6 
      7   OPTIONS:
      8     -p <port>
      9        Serve pages on the given port. Defaults to 7100.
     10     --proguard-map FILE
     11        Use the proguard map FILE to deobfuscate the heap dump.
     12     --baseline FILE
     13        Diff the heap dump against the given baseline heap dump FILE.
     14     --baseline-proguard-map FILE
     15        Use the proguard map FILE to deobfuscate the baseline heap dump.
     16 
     17 TODO:
     18  * Add a user guide.
     19  * Dim 'image' and 'zygote' heap sizes slightly? Why do we even show these?
     20  * Let user re-sort sites objects info by clicking column headers.
     21  * Let user re-sort "Objects" list.
     22  * Show site context and heap and class filter in "Objects" view?
     23  * Have a menu at the top of an object view with links to the sections?
     24  * Include ahat version and hprof file in the menu at the top of the page?
     25  * Heaped Table
     26    - Make sortable by clicking on headers.
     27  * For HeapTable with single heap shown, the heap name isn't centered?
     28  * Consistently document functions.
     29  * Show version number with --version.
     30  * Show somewhere where to send bugs.
     31  * Include a link to /objects in the overview and menu?
     32  * Turn on LOCAL_JAVACFLAGS := -Xlint:unchecked -Werror
     33 
     34  * [low priority] by site allocations won't line up if the stack has been
     35    truncated. Is there any way to manually line them up in that case?
     36 
     37  * [low priority] Have a switch to choose whether unreachable objects are
     38    ignored or not?  Is there any interest in what's unreachable, or is it only
     39    reachable objects that people care about?
     40 
     41 Things to Test:
     42  * That we can open a hprof without an 'app' heap and show a tabulation of
     43    objects normally sorted by 'app' heap by default.
     44  * Visit /objects without parameters and verify it doesn't throw an exception.
     45  * Visit /objects with an invalid site, verify it doesn't throw an exception.
     46  * That we can view the list of all objects in a reasonably short amount of
     47    time.
     48  * That we don't show the 'extra' column in the DominatedList if we are
     49    showing all the instances.
     50  * Instance.getDexCacheLocation
     51 
     52 Reported Issues:
     53  * Request to be able to sort tables by size.
     54 
     55 Release History:
     56  1.6 Pending
     57 
     58  1.5 December 05, 2017
     59    Distinguish between weakly reachable and unreachable instances.
     60    Allow hex ids to be used for objects in query parameters.
     61    Restore old presentation of sample paths from gc roots.
     62    Fix bug in selection of sample paths from gc root.
     63    Fix bug in proguard deobfuscation of stack frames.
     64    Tighten up and document ahat public API.
     65 
     66  1.4 October 03, 2017
     67    Give better error messages on failure to launch ahat.
     68    Properly mark thread and non-default root objects as roots.
     69    Improve startup performance, in some cases significantly.
     70    Other miscellaneous bug fixes.
     71 
     72  1.3.1 August 22, 2017
     73    Don't include weak references in sample paths.
     74 
     75  1.3 July 25, 2017
     76    Improve diffing of static and instance fields.
     77    Improve startup performance by roughly 25%.
     78 
     79  1.2 May 26, 2017
     80    Show registered native sizes of objects.
     81    Simplify presentation of sample path from gc root.
     82 
     83  1.1 Feb 21, 2017
     84    Show java.lang.ref.Reference referents as "unreachable" instead of null.
     85 
     86  1.0 Dec 20, 2016
     87    Add support for diffing two heap dumps.
     88    Remove native allocations view.
     89    Remove outdated help page.
     90    Significant refactoring of ahat internals.
     91 
     92  0.8 Oct 18, 2016
     93    Show sample path from GC root with field names in place of dominator path.
     94 
     95  0.7 Aug 16, 2016
     96    Launch ahat server before processing the heap dump.
     97    Target Java 1.7.
     98 
     99  0.6 Jun 21, 2016
    100    Add support for proguard deobfuscation.
    101 
    102  0.5 Apr 19, 2016
    103    Update perflib to perflib-25.0.0 to improve processing performance.
    104 
    105  0.4 Feb 23, 2016
    106    Annotate char[] objects with their string values.
    107    Show registered native allocations for heap dumps that support it.
    108 
    109  0.3 Dec 15, 2015
    110    Fix page loading performance by showing a limited number of entries by default.
    111    Fix mismatch between overview and "roots" totals.
    112    Annotate root objects and show their types.
    113    Annotate references with their referents.
    114 
    115  0.2 Oct 20, 2015
    116    Take into account 'count' and 'offset' when displaying strings.
    117 
    118  0.1ss Aug 04, 2015
    119    Enable stack allocations code (using custom modified perflib).
    120    Sort objects in 'objects/' with default sort.
    121 
    122  0.1-stacks Aug 03, 2015
    123    Enable stack allocations code (using custom modified perflib).
    124 
    125  0.1 July 30, 2015
    126    Initial Release
    127 
    128