summaryrefslogtreecommitdiff
path: root/compiler/optimizing/codegen_test_utils.h
diff options
context:
space:
mode:
authorRichard Uhler <ruhler@google.com>2018-06-01 13:17:08 +0100
committerRichard Uhler <ruhler@google.com>2018-06-12 12:42:05 +0100
commitf83f83dfe3c5168a3bf191723933be662785e108 (patch)
tree9ce7f363a68c340fd9b15b9bbee5733cdf92e7ce /compiler/optimizing/codegen_test_utils.h
parent408bdc604e4fe230bf90ffa6816bfbbb3786806e (diff)
Improve ahat dominators computation.
Improve the space complexity of the ahat dominators computation algorithm to be linear in the size of the heap dump being processed. Performance of the algorithm is on par with the previous version of the algorithm, verified by running it on a collection of 150 or so Android heap dumps laying around from old memory investigations. For example: old new 0m1.161s --> 0m1.333s 0m2.800s --> 0m3.350s 0m2.805s --> 0m2.429s 0m4.161s --> 0m5.547s 0m4.553s --> 0m3.482s 0m5.714s --> 0m6.373s 0m6.254s --> 0m5.439s 0m11.615s --> 0m11.456s 0m14.377s --> 0m14.543s The new algorithm performs considerably better in those cases where the old algorithm has excessive memory requirements. For example: old new 0m11.135s --> 0m5.915s 0m11.596s --> 0m7.805s 0m31.886s --> 0m10.569s 1m10.972s --> 0m14.350s For the heap dump in b/79200800, the old algorithm would be killed after trying to use more than 64GB of memory. The new algorithm takes roughly 2m30s and 5GB of memory to process that same heap dump. Bug: 79200800 Test: m ahat-test Test: Open a non-trivial heap dump and compare retained sizes for the top 30 or so rooted instances between the old and new version of the algorithm. Change-Id: I8f939b35cf3867d3062863fd9dedeee487db9591
Diffstat (limited to 'compiler/optimizing/codegen_test_utils.h')
0 files changed, 0 insertions, 0 deletions