Package org.eclipse.mat.snapshot
Class Histogram
java.lang.Object
org.eclipse.mat.snapshot.HistogramRecord
org.eclipse.mat.snapshot.Histogram
- All Implemented Interfaces:
Serializable
,IIconProvider
,IResult
,IResultTable
,IStructuredResult
Class histogram - heap objects aggregated by their class. It holds the number
and consumed memory of the objects aggregated per class and aggregated per
class loader.
- See Also:
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic final class
static final class
static final class
-
Field Summary
Fields inherited from class org.eclipse.mat.snapshot.HistogramRecord
COMPARATOR_FOR_LABEL, COMPARATOR_FOR_NUMBEROFOBJECTS, COMPARATOR_FOR_RETAINEDHEAPSIZE, COMPARATOR_FOR_USEDHEAPSIZE
Fields inherited from interface org.eclipse.mat.query.IIconProvider
EMPTY
-
Constructor Summary
ConstructorDescriptionHistogram
(String label, ArrayList<ClassHistogramRecord> classHistogramRecords, ArrayList<ClassLoaderHistogramRecord> classLoaderHistogramRecords, long numberOfObjects, long usedHeapSize, long retainedHeapSize) Construct a histogramHistogram
(String label, ArrayList<ClassHistogramRecord> classHistogramRecords, ArrayList<ClassLoaderHistogramRecord> classLoaderHistogramRecords, long numberOfObjects, long usedHeapSize, long retainedHeapSize, boolean isDefaultHistogram) Construct a histogram -
Method Summary
Modifier and TypeMethodDescriptiondiffWithBaseline
(Histogram baseline) Compute a new histogram as difference of this histogram compared to (minus) the given baseline histogram.static String
generateClassHistogramRecordCsvReport
(Histogram histogram, Comparator<HistogramRecord> comparator) Generate machine/human readable comma separated report from an histogram.static String
generateClassHistogramRecordTextReport
(Histogram histogram, Comparator<HistogramRecord> comparator) Generate human readable text based report from a histogram.static String
generateClassLoaderHistogramRecordCsvReport
(Histogram histogram, Comparator<HistogramRecord> comparator) Generate machine/human readable comma separated report from an histogram.Get collection of all the classes for all the objects which were found in the set of objects on which the class histogram was computed.Get collection of all the class loaders for all the classes for all the objects which were found in the set of objects on which the class histogram was computed.Column[]
The columns of the tree or table.getColumnValue
(Object row, int columnIndex) Returns the (unformatted) value of a table/tree cell.getContext
(Object row) The default context of the row which is used to display information in the object inspector.(Optionally) Return meta data of the result needed to fine-tune the display of the result.getRow
(int rowId) Returns the object of the row with the given row number.int
Returns the number of rows in the result table.implementation as result tree grouped by class loaderimplementation as result tree grouped by packagegroupBySuperclass
(ISnapshot snapshot) implementation as result tree grouped by superclassintersectWithAnother
(Histogram another) Compute a new histogram as intersection of this histogram compared to (equals) the given another histogram.boolean
toString()
Methods inherited from class org.eclipse.mat.snapshot.HistogramRecord
getLabel, getNumberOfObjects, getRetainedHeapSize, getUsedHeapSize, incNumberOfObjects, incNumberOfObjects, incRetainedHeapSize, incUsedHeapSize, reverseComparator, setLabel, setNumberOfObjects, setRetainedHeapSize, setUsedHeapSize
-
Constructor Details
-
Histogram
public Histogram(String label, ArrayList<ClassHistogramRecord> classHistogramRecords, ArrayList<ClassLoaderHistogramRecord> classLoaderHistogramRecords, long numberOfObjects, long usedHeapSize, long retainedHeapSize) Construct a histogram- Parameters:
label
- the name of the whole histogramclassHistogramRecords
- the classesclassLoaderHistogramRecords
- the class loadersnumberOfObjects
- the total number of objectsusedHeapSize
- the shallow size of all the objectsretainedHeapSize
- the retained size of all the objects, or 0 if unknown
-
Histogram
public Histogram(String label, ArrayList<ClassHistogramRecord> classHistogramRecords, ArrayList<ClassLoaderHistogramRecord> classLoaderHistogramRecords, long numberOfObjects, long usedHeapSize, long retainedHeapSize, boolean isDefaultHistogram) Construct a histogram- Parameters:
label
- the name of the whole histogramclassHistogramRecords
- the classesclassLoaderHistogramRecords
- the class loadersnumberOfObjects
- the total number of objectsusedHeapSize
- the shallow size of all the objectsretainedHeapSize
- the retained size of all the objects, or 0 if unknownisDefaultHistogram
- a histogram of the whole snapshot
-
-
Method Details
-
getClassHistogramRecords
Get collection of all the classes for all the objects which were found in the set of objects on which the class histogram was computed.- Returns:
- collection of all the classes for all the objects which were found in the set of objects on which the class histogram was computed
-
getClassLoaderHistogramRecords
Get collection of all the class loaders for all the classes for all the objects which were found in the set of objects on which the class histogram was computed.- Returns:
- collection of all the class loaders for all the classes for all the objects which were found in the set of objects on which the class histogram was computed
-
diffWithBaseline
Compute a new histogram as difference of this histogram compared to (minus) the given baseline histogram.This method can be used to check what has changed from one histogram to another, to compute a delta.
- Parameters:
baseline
- baseline histogram- Returns:
- difference histogram between this histogram compared to (minus) the given baseline histogram
-
intersectWithAnother
Compute a new histogram as intersection of this histogram compared to (equals) the given another histogram.This method can be used to check what remains the same within two histograms, e.g. if you have two histograms it shows what hasn't changed, e.g. if you have two difference histograms it shows what remained the same change (increase or decrease; used in gradient memory leak analysis).
Note: Heap space is not taken into account in this analysis, only the number of objects, i.e. when the number of objects is the same, you will see this number of objects, otherwise or if there are no objects of a particular class you won't get a histogram record for it!
- Parameters:
another
- another histogram- Returns:
- intersection histogram of this histogram compared to (equals) the given another histogram
-
isDefaultHistogram
public boolean isDefaultHistogram() -
toString
-
generateClassHistogramRecordTextReport
public static String generateClassHistogramRecordTextReport(Histogram histogram, Comparator<HistogramRecord> comparator) Generate human readable text based report from a histogram.- Parameters:
histogram
- histogram you want a human reable text based report forcomparator
- comparator to be used for sorting the histogram records (HistogramRecord
provides some default comparators)- Returns:
- human redable text based report for the given histogram
-
generateClassHistogramRecordCsvReport
public static String generateClassHistogramRecordCsvReport(Histogram histogram, Comparator<HistogramRecord> comparator) Generate machine/human readable comma separated report from an histogram.- Parameters:
histogram
- histogram you want a machine/human readable comma separated report forcomparator
- comparator to be used for sorting the histogram records (HistogramRecord
provides some default comparators)- Returns:
- machine/human readable comma separated report for the given histogram
-
generateClassLoaderHistogramRecordCsvReport
public static String generateClassLoaderHistogramRecordCsvReport(Histogram histogram, Comparator<HistogramRecord> comparator) Generate machine/human readable comma separated report from an histogram.- Parameters:
histogram
- histogram you want a machine/human readable comma separated report forcomparator
- comparator to be used for sorting the histogram records (HistogramRecord
provides some default comparators)- Returns:
- machine/human readable comma separated report for the given histogram
-
getResultMetaData
Description copied from interface:IResult
(Optionally) Return meta data of the result needed to fine-tune the display of the result. This could include an additional context, an additional query to run on selected data from the result , additional calculated columns, or an indication that the results are already presorted.- Specified by:
getResultMetaData
in interfaceIResult
- Returns:
- the metadata for the result, used to obtain extra data
-
getColumns
Description copied from interface:IStructuredResult
The columns of the tree or table.- Specified by:
getColumns
in interfaceIStructuredResult
- Returns:
- an array of all the columns
-
getRowCount
public int getRowCount()Description copied from interface:IResultTable
Returns the number of rows in the result table.- Specified by:
getRowCount
in interfaceIResultTable
- Returns:
- the number of rows
-
getRow
Description copied from interface:IResultTable
Returns the object of the row with the given row number.- Specified by:
getRow
in interfaceIResultTable
- Parameters:
rowId
- The row number.- Returns:
- an opaque row object representing this row
which can be passed to
IStructuredResult.getContext(Object)
orIStructuredResult.getColumnValue(Object, int)
.
-
getColumnValue
Description copied from interface:IStructuredResult
Returns the (unformatted) value of a table/tree cell.- Specified by:
getColumnValue
in interfaceIStructuredResult
- Parameters:
row
- The row object as returned by theIResultTable.getRow(int)
orIResultTree.getElements()
orIResultTree.getChildren(Object)
methodscolumnIndex
- The index of the column.- Returns:
- the cell value
-
getContext
Description copied from interface:IStructuredResult
The default context of the row which is used to display information in the object inspector. Unless no context provider is given via theResultMetaData
, it is also used for the context menu on a row.- Specified by:
getContext
in interfaceIStructuredResult
- Parameters:
row
- The row object as returned by theIResultTable.getRow(int)
orIResultTree.getElements()
orIResultTree.getChildren(Object)
methods.- Returns:
- a context object holding details about that row
-
getIcon
- Specified by:
getIcon
in interfaceIIconProvider
-
groupByClassLoader
implementation as result tree grouped by class loader -
groupByPackage
implementation as result tree grouped by package -
groupBySuperclass
implementation as result tree grouped by superclass- Since:
- 1.0
-