NameDateSize

..20-Dec-20164 KiB

ahat20-Dec-2016707

Android.mk20-Dec-20163.1 KiB

README.txt20-Dec-20164 KiB

src/20-Dec-20164 KiB

test/20-Dec-20164 KiB

test-dump/20-Dec-20164 KiB

README.txt

1AHAT - Android Heap Analysis Tool
2
3Usage:
4  java -jar ahat.jar [-p port] 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
11TODO:
12 * Add more tips to the help page.
13   - Recommend how to start looking at a heap dump.
14   - Say how to enable allocation sites.
15   - Where to submit feedback, questions, and bug reports.
16 * Dim 'image' and 'zygote' heap sizes slightly? Why do we even show these?
17 * Let user re-sort sites objects info by clicking column headers.
18 * Let user re-sort "Objects" list.
19 * Show site context and heap and class filter in "Objects" view?
20 * Have a menu at the top of an object view with links to the sections?
21 * Include ahat version and hprof file in the menu at the top of the page?
22 * Heaped Table
23   - Make sortable by clicking on headers.
24 * For HeapTable with single heap shown, the heap name isn't centered?
25 * Consistently document functions.
26 * Show version number with --version.
27 * Show somewhere where to send bugs.
28 * Include a link to /objects in the overview and menu?
29 * Turn on LOCAL_JAVACFLAGS := -Xlint:unchecked -Werror
30 * Use hex for object ids in URLs?
31
32 * [low priority] by site allocations won't line up if the stack has been
33   truncated. Is there any way to manually line them up in that case?
34
35 * [low priority] Have a switch to choose whether unreachable objects are
36   ignored or not?  Is there any interest in what's unreachable, or is it only
37   reachable objects that people care about?
38
39 * [low priority] Have a way to diff two heap dumps by site.
40   This should be pretty easy to do, actually. The interface is the real
41   question. Maybe: augment each byte count field on every page with the diff
42   if a baseline has been provided, and allow the user to sort by the diff.
43
44Things to Test:
45 * That we can open a hprof without an 'app' heap and show a tabulation of
46   objects normally sorted by 'app' heap by default.
47 * Visit /objects without parameters and verify it doesn't throw an exception.
48 * Visit /objects with an invalid site, verify it doesn't throw an exception.
49 * That we can view the list of all objects in a reasonably short amount of
50   time.
51 * That we don't show the 'extra' column in the DominatedList if we are
52   showing all the instances.
53 * That InstanceUtils.asString properly takes into account "offset" and
54   "count" fields, if they are present.
55 * InstanceUtils.getDexCacheLocation
56
57Reported Issues:
58 * Request to be able to sort tables by size.
59
60Perflib Requests:
61 * Class objects should have java.lang.Class as their class object, not null.
62 * ArrayInstance should have asString() to get the string, without requiring a
63   length function.
64 * Document that getHeapIndex returns -1 for no such heap.
65 * Look up totalRetainedSize for a heap by Heap object, not by a separate heap
66   index.
67 * What's the difference between getId and getUniqueId?
68 * I see objects with duplicate references.
69 * A way to get overall retained size by heap.
70 * A method Instance.isReachable()
71
72Things to move to perflib:
73 * Extracting the string from a String Instance.
74 * Extracting bitmap data from bitmap instances.
75 * Adding up allocations by stack frame.
76 * Computing, for each instance, the other instances it dominates.
77 * Instance.isRoot and Instance.getRootTypes.
78
79Release History:
80 0.4 Pending
81   Annotate char[] objects with their string values.
82   Show registered native allocations for heap dumps that support it.
83
84 0.3 Dec 15, 2015
85   Fix page loading performance by showing a limited number of entries by default.
86   Fix mismatch between overview and "roots" totals.
87   Annotate root objects and show their types.
88   Annotate references with their referents.
89
90 0.2 Oct 20, 2015
91   Take into account 'count' and 'offset' when displaying strings.
92
93 0.1ss Aug 04, 2015
94   Enable stack allocations code (using custom modified perflib).
95   Sort objects in 'objects/' with default sort.
96
97 0.1-stacks Aug 03, 2015
98   Enable stack allocations code (using custom modified perflib).
99
100 0.1 July 30, 2015
101   Initial Release
102
103