Bug 561460 - More comparison queries
Summary: More comparison queries
Status: RESOLVED FIXED
Alias: None
Product: MAT
Classification: Tools
Component: Core (show other bugs)
Version: 1.9   Edit
Hardware: All All
: P3 enhancement (vote)
Target Milestone: 1.11.0   Edit
Assignee: Andrew Johnson CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 298078 369047
  Show dependency tree
 
Reported: 2020-03-25 14:04 EDT by Andrew Johnson CLA
Modified: 2020-10-12 10:38 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andrew Johnson CLA 2020-03-25 14:04:26 EDT
The general comparison query can now compare trees and produce trees as a result.

Now we can use the comparison query to help solve out of memory problems.

My proposal is to have a leak suspects query which compares the dominator tree of two snapshots in order to spot growths in memory usage.

This is made of several parts:
FindLeaksQuery2 - extending FindLeaks to call a comparison of the dominator trees, then to look for big changes in the
dominator tree. This returns a brief report with leaks any accumulation point and the delta in retained size.
LeakHunter2 - calls FindLeaksQuery2 and reports changes in retained size, also retrieves the delta dominator tree to add to the end of the report
LeakHunter - minor changes to also report changes in accumulation point sizes

The leak suspects report also calls the overview query, reporting
heap dump overview
system properties
threads
class histogram

The comparison overview needs to report those for both snapshots, so this can be done by adding a 'simple comparison' query which runs a command on two snapshots, then compares the result.

These queries may need to be adjusted, depending on real world results. The test snapshots can be used to exercise the code.
Sun JDK6 32-bit versus 64-bit
IBM JDK8 versus JDK7
two different JDK11 dumps - one from a collection test, one from a snapshot test
Comment 1 Eclipse Genie CLA 2020-03-25 14:43:56 EDT
New Gerrit change created: https://git.eclipse.org/r/160005
Comment 2 Eclipse Genie CLA 2020-03-25 17:46:13 EDT
New Gerrit change created: https://git.eclipse.org/r/160012
Comment 4 Eclipse Genie CLA 2020-03-25 18:39:52 EDT
New Gerrit change created: https://git.eclipse.org/r/160013
Comment 6 Eclipse Genie CLA 2020-03-25 18:54:28 EDT
New Gerrit change created: https://git.eclipse.org/r/160015
Comment 8 Andrew Johnson CLA 2020-03-26 04:42:37 EDT
First version merged.
Comment 9 Eclipse Genie CLA 2020-03-26 16:36:46 EDT
New Gerrit change created: https://git.eclipse.org/r/160070
Comment 11 Eclipse Genie CLA 2020-03-28 16:31:35 EDT
New Gerrit change created: https://git.eclipse.org/r/160141
Comment 13 Eclipse Genie CLA 2020-03-29 05:52:55 EDT
New Gerrit change created: https://git.eclipse.org/r/160148
Comment 15 Eclipse Genie CLA 2020-03-29 09:03:17 EDT
New Gerrit change created: https://git.eclipse.org/r/160151
Comment 17 Eclipse Genie CLA 2020-08-30 09:47:43 EDT
New Gerrit change created: https://git.eclipse.org/r/c/mat/org.eclipse.mat/+/168425
Comment 19 Eclipse Genie CLA 2020-08-31 06:16:36 EDT
New Gerrit change created: https://git.eclipse.org/r/c/mat/org.eclipse.mat/+/168464
Comment 21 Andrew Johnson CLA 2020-10-12 10:38:04 EDT
This is working - any problems can be raised before the release of 1.11 by reopening this bug, or by a new bug afterwards.