Module jdk.management
Package com.sun.management

## Class GcInfo

- java.lang.Object
- - com.sun.management.GcInfo

- All Implemented Interfaces:
    `CompositeData`, `CompositeDataView`

      public class GcInfo
      extends Object
      implements CompositeData, CompositeDataView

  Garbage collection information. It contains the following information for one garbage collection as well as GC-specific attributes:

  > - Start time
  > - End time
  > - Duration
  > - Memory usage before the collection starts
  > - Memory usage after the collection ends

  `GcInfo` is a `CompositeData` The GC-specific attributes can be obtained via the CompositeData interface. This is a historical relic, and other classes should not copy this pattern. Use `CompositeDataView` instead.

  ### MXBean Mapping

  `GcInfo` is mapped to a `CompositeData` with attributes as specified in the `from` method.
  Since:
    1.5

- - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `static GcInfo` | `from​(CompositeData cd)` | Returns a `GcInfo` object represented by the given `CompositeData`.
    `long` | `getDuration()` | Returns the elapsed time of this GC in milliseconds.
    `long` | `getEndTime()` | Returns the end time of this GC in milliseconds since the Java virtual machine was started.
    `long` | `getId()` | Returns the identifier of this garbage collection which is the number of collections that this collector has done.
    `Map<String,​MemoryUsage>` | `getMemoryUsageAfterGc()` | Returns the memory usage of all memory pools at the end of this GC.
    `Map<String,​MemoryUsage>` | `getMemoryUsageBeforeGc()` | Returns the memory usage of all memory pools at the beginning of this GC.
    `long` | `getStartTime()` | Returns the start time of this GC in milliseconds since the Java virtual machine was started.
    `CompositeData` | `toCompositeData​(CompositeType ct)` | Return the `CompositeData` representation of this `GcInfo`, including any GC-specific attributes.

    - ### Methods declared in class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods declared in interface javax.management.openmbean.CompositeData

      `containsKey, containsValue, equals, get, getAll, getCompositeType, hashCode, toString, values`

- - ### Method Detail

    - #### getId

          public long getId()

      Returns the identifier of this garbage collection which is the number of collections that this collector has done.
      Returns:
        the identifier of this garbage collection which is the number of collections that this collector has done.

    - #### getStartTime

          public long getStartTime()

      Returns the start time of this GC in milliseconds since the Java virtual machine was started.
      Returns:
        the start time of this GC.

    - #### getEndTime

          public long getEndTime()

      Returns the end time of this GC in milliseconds since the Java virtual machine was started.
      Returns:
        the end time of this GC.

    - #### getDuration

          public long getDuration()

      Returns the elapsed time of this GC in milliseconds.
      Returns:
        the elapsed time of this GC in milliseconds.

    - #### getMemoryUsageBeforeGc

          public Map<String,​MemoryUsage> getMemoryUsageBeforeGc()

      Returns the memory usage of all memory pools at the beginning of this GC. This method returns a `Map` of the name of a memory pool to the memory usage of the corresponding memory pool before GC starts.
      Returns:
        a `Map` of memory pool names to the memory usage of a memory pool before GC starts.

    - #### getMemoryUsageAfterGc

          public Map<String,​MemoryUsage> getMemoryUsageAfterGc()

      Returns the memory usage of all memory pools at the end of this GC. This method returns a `Map` of the name of a memory pool to the memory usage of the corresponding memory pool when GC finishes.
      Returns:
        a `Map` of memory pool names to the memory usage of a memory pool when GC finishes.

    - #### from

          public static GcInfo from​(CompositeData cd)

      Returns a `GcInfo` object represented by the given `CompositeData`. The given `CompositeData` must contain all the following attributes:

      > description
      > Attribute Name | Type
      > --- | ---
      > index | `java.lang.Long`
      > startTime | `java.lang.Long`
      > endTime | `java.lang.Long`
      > memoryUsageBeforeGc | `javax.management.openmbean.TabularData`
      > memoryUsageAfterGc | `javax.management.openmbean.TabularData`

      Returns:
        a `GcInfo` object represented by `cd` if `cd` is not `null`; `null` otherwise.
      Throws:
        `IllegalArgumentException` - if `cd` does not represent a `GcInfo` object with the attributes described above.

    - #### toCompositeData

          public CompositeData toCompositeData​(CompositeType ct)

      Return the `CompositeData` representation of this `GcInfo`, including any GC-specific attributes. The returned value will have at least all the attributes described in the `from` method, plus optionally other attributes.
      Specified by:
        `toCompositeData` in interface `CompositeDataView`
      Parameters:
        `ct` - the `CompositeType` that the caller expects. This parameter is ignored and can be null.
      Returns:
        the `CompositeData` representation.