096d3ae1005acf8f56474bd780ce82d675348e61 |
|
26-Jan-2018 |
Andreas Gampe <agampe@google.com> |
Ahat: Use art -d in tests Use the debug dependencies and art -d for heap-dump generation. The heap dump already depends on the core images, which are generated with dex2oatd. This cuts down on the required targets when building ahat-tests. Bug: 72549306 Test: m ahat-tests Test: m test-art-host Change-Id: I76d99b41d4d31b99a68f6085940ac0885c756905
|
b7732a3fcf06a55075a601dbc593b23a6fc71dbf |
|
16-Nov-2017 |
Richard Uhler <ruhler@google.com> |
Add javadoc for all public ahat API. And tighten up the API a little more. The only functional change is to replace the Sort.WithPriority class with a Sort.withPriority function so that the Sort.WithPriority class can be made private. Test: m ahat-test Change-Id: Iba0ac04767a20c9008f209a777294ecaccc64ffc
|
0a85a95210b3874722a3b36b57fb12307b4b635d |
|
30-Oct-2017 |
Richard Uhler <ruhler@google.com> |
Tighten up ahat public API. And add build rules to make it very explict when the public API changes. Change-Id: I2319eb2004e87957c5d040d32a109ca09a06a166 Test: m ahat-test Test: Change public API and verify build complains. Test: Change non-public API and verify build does not complain.
|
0b805e737392cbbbda1aa2934d830e33a16c12ea |
|
31-Oct-2017 |
Pete Gillin <peteg@google.com> |
Include ahat in the general-tests tradefed suite. Specifically, this makes ahat available on the classpath of the general-tests tradefed suite. It will be used by libcore tests that run there. Change-Id: If3fa3a78c6b9c4ce4df22305bcd8d731b9466671 Bug: 67283029 Bug: 67999970 Test: make ahat tradefed-all
|
8674b917d7085c5fe64836251e154a58b57e976e |
|
23-Oct-2017 |
Colin Cross <ccross@android.com> |
Depend on dalvikvm64 directly instead of using ART_HOST_EXECUTABLES ART_HOST_EXECUTABLES is a list of phony targets. A file that depends on a phony target is always considered dirty and is rebuilt on every build. Make the test-dump*.hprof targets depend on the installed location of dalvikvm64, and pass --64 to the art script so that it calls dalvikvm64 instead of the dalvikvm symlink. Bug: 68105950 Test: m out/target/common/obj/JAVA_LIBRARIES/ahat-test-dump_intermediates/test-dump-base.hprof Change-Id: Ibf2dae4bc6113b53db6ebadc93a67eceb55fd77b
|
bf47bc5171880a37be4de334743e4d82fc68b20f |
|
22-Oct-2017 |
Colin Cross <ccross@android.com> |
ahat-tests: don't write to src directory during build The art script writes to $PWD/android-data$$ by default, which is in the source tree and may not be writeable. It also causes the timestamp of the top level source dir to change, which can cause build globs to rerun on the next build and breaks unnecessary rebuild checks. Test: m checkbuild Bug: 68105950 Change-Id: I75ddb6519b1c94132635517a6b65ea24cad25d91
|
8cc213436f3d15a44fb86eda04e16e24923a8f4c |
|
10-Oct-2017 |
Richard Uhler <ruhler@google.com> |
Reorganize ahat source directory layout. In particular, use a directory tree that reflects the Java package tree to facilitate use of IDEs for browsing the ahat source code. Test: m ahat-test Change-Id: I00c205df420c2a53b211f7b772dd5b45cedf6ae3
|
bdff6fee3226308a6639b57b76f4e65e3b687ca4 |
|
25-Sep-2017 |
Richard Uhler <ruhler@google.com> |
Don't build ahat tests with EMMA_INSTRUMENT. Fixes build failure. Test: mma, in art/tools/ahat directory Test: mma EMMA_INSTRUMENT=true, in art/tools/ahat directory Change-Id: I0c7b5c54eaa18138e1b1c49d9fa54a69030134b6
|
d2c751668d3c2d1399fb5291260435b92f75bc33 |
|
22-Sep-2017 |
Richard Uhler <ruhler@google.com> |
Don't build ahat tests for mac. Because they require running ART, which isn't supported on mac. Change-Id: Ic4dea4a7cbbd8932694c0a2dd153e50e638ab171 Test: m ahat-test, but I can't test it fixes the mac locally.
|
26a982ad022a254ac57f84e996c31b4e271de028 |
|
23-Aug-2017 |
Richard Uhler <ruhler@google.com> |
Remove last remaining guava dependencies. ajat.jar reduced in size from 2.3MB down to 135KB. Test: m ahat-test, with HtmlEscaperTest added. Change-Id: I9a71ea46d1c953380ae3b07f3503ef16e4b97c8d
|
a3b7cf0f12da448664536f8b7c793e73da0a4c7f |
|
26-Jul-2017 |
Richard Uhler <ruhler@google.com> |
Use a custom parser implementation instead of perflib. Removes the dependency on perflib, avoids bugs in the perflib parser whose fixes would not be readily available for ahat to use in the short term, and avoids the need to pull in additional dependencies required to use future versions of perflib. Improves heap dump processing performance by 30-50% on some examples now that we can avoid overheads due to the impedance mismatch between perflib's object representation and ahat's object representation. Other relevant changes included in this CL: * Introduce enums for root types and basic types. * Compute instance sizes on demand rather than eagerly. * Introduce an abstraction for a collection of instances sorted by id. Bug: 28312815 Bug: 33769446 Bug: 65356532 Test: m ahat-test, this change fixes all previously failing tests. Change-Id: Ib14c294aa745cb03b02fa81d1544c78ff35e1edc
|
72f0ec717ce1ee13108d65af83fc99f8e507d75d |
|
13-Sep-2017 |
Richard Uhler <ruhler@google.com> |
ahat: Expand test coverage using static heap dumps. A limitation of the existing ahat test framework was that it was only easy to test heap dumps generated as part of building the ahat tests. This change adds static heap dumps from previous versions of Android to test issues that were specific to previous versions or that are easier to test with a hard-coded heap dump file. The test heap dumps are now stored as resources in ahat-test.jar rather than being passed to ahat-test.jar using system properties. Fixes a couple of minor bugs encountered when expanding tests. There are currently two failing tests: 1. Thread roots are not properly marked. 2. Root records not in the default heap are not properly marked. Test: m ahat-test, from clean build, with new tests added. Bug: 65356532 Change-Id: I3fa77e2e75d535a1dd68a763c7c45913a9e4074d
|
0b21333dbdbcb02c96148456f409f1b7d1f20697 |
|
24-Apr-2017 |
Richard Uhler <ruhler@google.com> |
ahat: build ahat-test-dump correctly with javac Use BUILD_JAVA_LIBRARY instead of BUILD_HOST_DALVIK_JAVA_LIBRARY for ahat-test-dump.jar so that no special handling is needed to enable proguard obfuscation. This way the ahat-test-dump can be obfuscated when compiled with javac as well as jack. Bug: 64594350 Test: m ahat-test, built from scratch Change-Id: Iad2890b314982b08da876595c3a093cd8ec9f7da
|
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
|
932b19ae77b2b15635ea5060baec0ca939d5db86 |
|
28-Nov-2016 |
Paul Duffin <paulduffin@google.com> |
Use junit-host instead of junit Bug: 30188076 Test: make checkbuild Change-Id: Ia54aeae56f49123885765bc896c00fd363e93c26
|
ec78c78508fa5ef6bac78ee2face0d30e67cf913 |
|
13-May-2016 |
Richard Uhler <ruhler@google.com> |
Add support for proguard deobfuscation. Test: m ahat-test, with obfuscation of test-dump.hprof added. Bug: 25812772 Change-Id: I0f257432da570aa146e6bb5c549f014aecc0c326
|
6928649223312692f9e2401c34dac37510ddbb2f |
|
20-Sep-2016 |
Richard Uhler <ruhler@google.com> |
ahat: Show GC Root Paths. The Dominator Path in the objects view is replaced by an augmented Sample Path from GC Root, which includes non-dominator objects along a sample path and field names. Also, use blanks instead of "0" in heap tables when the size is 0. This cleans up the pages a little, and conveniently lets us distinguish between dominator and non-dominator objects in the Sample Path from GC Root. Test: m ahat-test, with new InstanceUtils.gcRootPath test added. Bug: 27299030 Change-Id: I53d75f9dcb3157c2b5b3afc74958711536cd67b6
|
cd8a057350aceab9ca48a4720aaa21806b041799 |
|
17-Sep-2016 |
Dan Willemsen <dwillemsen@google.com> |
Move ART_HOST_TEST_DIR to Android.common_test.mk I'm improving Kati's re-run detection, and this $(shell echo $$PPID) now now causes us to reparse all of the makefiles every time, since it really does change on each execution. But if you aren't running the ART tests, this doesn't actually get used. So punt this over to only executing when you're including the test runner -- it's not ideal, since you'll be reparsing the makefiles every time you want to run the tests. Depending on the desired behavior, this should be able to be implemented without depending on the PID of Kati, or the test runner can be moved out of the build system, since most of the builds here have moved to Soong now. Bug: 30947985 Test: Compare build.ninja before and after this change, only change is the valgrind-test-art-target* targets. Test: m -j test-art-host Change-Id: Ibbc0f20e407bf70bce64d3428be5808d78bdaf91
|
69272db247cfb99a9060f849762aa6ce3959788e |
|
06-Aug-2016 |
Richard Uhler <ruhler@google.com> |
ahat: Target Java 1.7. So that users can run ahat with Java 7 without getting unsupported major/minor version errors. Change-Id: I76faab19bc1b14c76d5fd6b3ba19fcb07855dfd9 Test: m ahat-test Test: /usr/local/buildtools/java/jdk7/bin/java -jar ahat.jar Test: /usr/local/buildtools/java/jdk8/bin/java -jar ahat.jar Bug: 28303627
|
c5a0004ac86f976011723c176b589cc99c99e180 |
|
01-Jul-2016 |
Richard Uhler <ruhler@google.com> |
Add missing dependency required for ahat-test. Change-Id: I8f7afc97a82fadcdd2f18032900f2b8d8b2059bf Test: rm -r out/ && m ahat-test Test: rm -r out/ && m build-art-host Test: rm -r out/ && m build-art-host-tests Test: rm -r out/ && m build-art-target Test: rm -r out/ && m build-art-target-tests
|
3fbfab11b56cca0167c1af404ececa3651331f80 |
|
06-Jul-2016 |
Richard Uhler <ruhler@google.com> |
Revert "Add missing dependency required for ahat-test." This reverts commit 13f6d39da8ba6450dc861c4bfd09d21f3b403d4b. Breaks 'build-art-target'. https://build.chromium.org/p/client.art/builders/mips64-emulator-debug/builds/5651/steps/build%20target/logs/stdio Change-Id: I1466f92308955604ecfcac65deff86cb581d6fdc
|
13f6d39da8ba6450dc861c4bfd09d21f3b403d4b |
|
01-Jul-2016 |
Richard Uhler <ruhler@google.com> |
Add missing dependency required for ahat-test. Change-Id: Ifeb4a5ca0ba192b6ae85177cafa7d773c979379f Test: rm -r out/ && m ahat-test
|
fa8598dc6ef0358c20109faf58101425bbd80941 |
|
01-Mar-2016 |
Dan Willemsen <dwillemsen@google.com> |
Remove references to $(ACP) We're changing the implementation of these macros to not use acp. Instead of having to keep this in sync, move to using a standard prebuilt module. The build system has been updated to explicitly add the executable bit to prebuilt modules in the EXECUTABLES class. Change-Id: I29cf4d48619e022b7da65ef2df05a92bed08a456
|
0524aebba5b96d66ad23805215df6a42e44a6e83 |
|
13-Oct-2015 |
Richard Uhler <ruhler@google.com> |
Switch ahat test to use core-optimizing-pic.art. To match the recent change to the 'art' script. Change-Id: I996e562bf967881b30ed3065caf6ce6bf8adc18f
|
3524472e8f064dbd42e1a35d511a1efe36d2cbf2 |
|
11-Sep-2015 |
Richard Uhler <ruhler@google.com> |
Generate an hprof file to test ahat. This change sets up the infrastructure to write test cases for ahat that make use of an hprof file automatically generated from a sample program. Change-Id: Id11f656afb69c96a26655cc4caeb745ad844f431
|
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
|