Class Histogram

    • Constructor Detail

      • 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 histogram
        classHistogramRecords - the classes
        classLoaderHistogramRecords - the class loaders
        numberOfObjects - the total number of objects
        usedHeapSize - the shallow size of all the objects
        retainedHeapSize - 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 histogram
        classHistogramRecords - the classes
        classLoaderHistogramRecords - the class loaders
        numberOfObjects - the total number of objects
        usedHeapSize - the shallow size of all the objects
        retainedHeapSize - the retained size of all the objects, or 0 if unknown
        isDefaultHistogram - a histogram of the whole snapshot
    • Method Detail

      • getClassHistogramRecords

        public Collection<ClassHistogramRecord> 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

        public Collection<ClassLoaderHistogramRecord> 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

        public Histogram diffWithBaseline​(Histogram baseline)
        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

        public Histogram intersectWithAnother​(Histogram another)
        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()
      • 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 for
        comparator - 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 for
        comparator - 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 for
        comparator - 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

        public ResultMetaData 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 interface IResult
        Returns:
        the metadata for the result, used to obtain extra data
      • getRowCount

        public int getRowCount()
        Description copied from interface: IResultTable
        Returns the number of rows in the result table.
        Specified by:
        getRowCount in interface IResultTable
        Returns:
        the number of rows
      • groupByClassLoader

        public IResultTree groupByClassLoader()
        implementation as result tree grouped by class loader
      • groupByPackage

        public IResultTree groupByPackage()
        implementation as result tree grouped by package
      • groupBySuperclass

        public IResultTree groupBySuperclass​(ISnapshot snapshot)
        implementation as result tree grouped by superclass
        Since:
        1.0