BACK TO INDEX

Win32_PerfFormattedData_NETFramework_NETCLRMemory
Counters for CLR Garbage Collected heap.
NameSpace Path
\ROOT\CIMV2
PROPERTYSMS_REPORTCIMTYPEDESCRIPTION
AllocatedBytesPersecUInt32This counter displays the rate of bytes per second allocated on the GC Heap. This counter is updated at the end of every GC; not at each allocation. This counter is not an average over time; it displays the difference between the values observed in the last two samples divided by the duration of the sample interval.
CaptionStringA short textual description (one-line string) for the statistic or metric.
DescriptionStringA textual description of the statistic or metric.
FinalizationSurvivorsUInt32This counter displays the number of garbage collected objects that survive a collection because they are waiting to be finalized. If these objects hold references to other objects then those objects also survive but are not counted by this counter; the "Promoted Finalization-Memory from Gen 0" and "Promoted Finalization-Memory from Gen 1" counters represent all the memory that survived due to finalization. This counter is not a cumulative counter; its updated at the end of every GC with count of the survivors during that particular GC only. This counter was designed to indicate the extra overhead that the application might incur because of finalization.
Frequency_ObjectUInt64NA
Frequency_PerfTimeUInt64NA
Frequency_Sys100NSUInt64NA
Gen0heapsizeUInt32This counter displays the maximum bytes that can be allocated in generation 0 (Gen 0); its does not indicate the current number of bytes allocated in Gen 0. A Gen 0 GC is triggered when the allocations since the last GC exceed this size. The Gen 0 size is tuned by the Garbage Collector and can change during the execution of the application. At the end of a Gen 0 collection the size of the Gen 0 heap is infact 0 bytes; this counter displays the size (in bytes) of allocations that would trigger the next Gen 0 GC. This counter is updated at the end of a GC; its not updated on every allocation.
Gen0PromotedBytesPerSecUInt32This counter displays the bytes per second that are promoted from generation 0 (youngest) to generation 1; objects that are promoted just because they are waiting to be finalized are not included in this counter. Memory is promoted when it survives a garbage collection. This counter was designed as an indicator of relatively long-lived objects being created per sec. This counter displays the difference between the values observed in the last two samples divided by the duration of the sample interval.
Gen1heapsizeUInt32This counter displays the current number of bytes in generation 1 (Gen 1); this counter does not display the maximum size of Gen 1. Objects are not directly allocated in this generation; they are promoted from previous Gen 0 GCs. This counter is updated at the end of a GC; its not updated on every allocation.
Gen1PromotedBytesPerSecUInt32This counter displays the bytes per second that are promoted from generation 1 to generation 2 (oldest); objects that are promoted just because they are waiting to be finalized are not included in this counter. Memory is promoted when it survives a garbage collection. Nothing is promoted from generation 2 since it is the oldest. This counter was designed as an indicator of very long-lived objects being created per sec. This counter displays the difference between the values observed in the last two samples divided by the duration of the sample interval.
Gen2heapsizeUInt32This counter displays the current number of bytes in generation 2 (Gen 2). Objects are not directly allocated in this generation; they are promoted from Gen 1 during previous Gen 1 GCs. This counter is updated at the end of a GC; its not updated on every allocation.
LargeObjectHeapsizeUInt32This counter displays the current size of the Large Object Heap in bytes. Objects greater than 20 KBytes are treated as large objects by the Garbage Collector and are directly allocated in a special heap; they are not promoted through the generations. This counter is updated at the end of a GC; its not updated on every allocation.
NameStringThe Name property defines the label by which the statistic or metric is known. When subclassed, the property can be overridden to be a Key property.
NumberBytesinallHeapsUInt32This counter is the sum of four other counters; Gen 0 Heap Size; Gen 1 Heap Size; Gen 2 Heap Size and the Large Object Heap Size. This counter indicates the current memory allocated in bytes on the GC Heaps.
NumberGCHandlesUInt32This counter displays the current number of GC Handles in use. GCHandles are handles to resources external to the CLR and the managed environment. Handles occupy small amounts of memory in the GCHeap but potentially expensive unmanaged resources.
NumberGen0CollectionsUInt32This counter displays the number of times the generation 0 objects (youngest; most recently allocated) are garbage collected (Gen 0 GC) since the start of the application. Gen 0 GC occurs when the available memory in generation 0 is not sufficient to satisfy an allocation request. This counter is incremented at the end of a Gen 0 GC. Higher generation GCs include all lower generation GCs. This counter is explicitly incremented when a higher generation (Gen 1 or Gen 2) GC occurs. _Global_ counter value is not accurate and should be ignored. This counter displays the last observed value.
NumberGen1CollectionsUInt32This counter displays the number of times the generation 1 objects are garbage collected since the start of the application. The counter is incremented at the end of a Gen 1 GC. Higher generation GCs include all lower generation GCs. This counter is explicitly incremented when a higher generation (Gen 2) GC occurs. _Global_ counter value is not accurate and should be ignored. This counter displays the last observed value.
NumberGen2CollectionsUInt32This counter displays the number of times the generation 2 objects (older) are garbage collected since the start of the application. The counter is incremented at the end of a Gen 2 GC (also called full GC). _Global_ counter value is not accurate and should be ignored. This counter displays the last observed value.
NumberInducedGCUInt32This counter displays the peak number of times a garbage collection was performed because of an explicit call to GC.Collect. Its a good practice to let the GC tune the frequency of its collections.
NumberofPinnedObjectsUInt32This counter displays the number of pinned objects encountered in the last GC. This counter tracks the pinned objects only in the heaps that were garbage collected e.g. a Gen 0 GC would cause enumeration of pinned objects in the generation 0 heap only. A pinned object is one that the Garbage Collector cannot move in memory.
NumberofSinkBlocksinuseUInt32This counter displays the current number of sync blocks in use. Sync blocks are per-object data structures allocated for storing synchronization information. Sync blocks hold weak references to managed objects and need to be scanned by the Garbage Collector. Sync blocks are not limited to storing synchronization information and can also store COM interop metadata. This counter was designed to indicate performance problems with heavy use of synchronization primitives.
NumberTotalcommittedBytesUInt32This counter displays the amount of virtual memory (in bytes) currently committed by the Garbage Collector. (Committed memory is the physical memory for which space has been reserved on the disk paging file).
NumberTotalreservedBytesUInt32This counter displays the amount of virtual memory (in bytes) currently reserved by the Garbage Collector. (Reserved memory is the virtual memory space reserved for the application but no disk or main memory pages have been used.)
PercentTimeinGCUInt32% Time in GC is the percentage of elapsed time that was spent in performing a garbage collection (GC) since the last GC cycle. This counter is usually an indicator of the work done by the Garbage Collector on behalf of the application to collect and compact memory. This counter is updated only at the end of every GC and the counter value reflects the last observed value; its not an average.
PromotedFinalizationMemoryfromGen0UInt32This counter displays the bytes of memory that are promoted from generation 0 to generation 1 just because they are waiting to be finalized. This counter displays the value observed at the end of the last GC; its not a cumulative counter.
PromotedFinalizationMemoryfromGen1UInt32This counter displays the bytes of memory that are promoted from generation 1 to generation 2 just because they are waiting to be finalized. This counter displays the value observed at the end of the last GC; its not a cumulative counter. This counter is reset to 0 if the last GC was a Gen 0 GC only.
PromotedMemoryfromGen0UInt32This counter displays the bytes of memory that survive garbage collection (GC) and are promoted from generation 0 to generation 1; objects that are promoted just because they are waiting to be finalized are not included in this counter. This counter displays the value observed at the end of the last GC; its not a cumulative counter.
PromotedMemoryfromGen1UInt32This counter displays the bytes of memory that survive garbage collection (GC) and are promoted from generation 1 to generation 2; objects that are promoted just because they are waiting to be finalized are not included in this counter. This counter displays the value observed at the end of the last GC; its not a cumulative counter. This counter is reset to 0 if the last GC was a Gen 0 GC only.
Timestamp_ObjectUInt64NA
Timestamp_PerfTimeUInt64NA
Timestamp_Sys100NSUInt64NA
SAMPLE DATA INSTANCE
   [Description("Counters for CLR Garbage Collected heap."): ToInstance Amended, DisplayName(".NET CLR Memory"): ToInstance Amended, genericperfctr: ToInstance Amended, locale(1033): ToInstance Amended]
   instance of Win32_PerfFormattedData_NETFramework_NETCLRMemory
   {
    [Description("This counter displays the rate of bytes per second allocated on the GC Heap. This counter is updated at the end of every GC; not at each allocation. This counter is not an average over time; it displays the difference between the values observed in the last two samples divided by the duration of the sample interval."): ToInstance Amended, DisplayName("Allocated Bytes/sec"): ToInstance Amended] AllocatedBytesPersec = 0;
    [Description("This counter displays the number of garbage collected objects that survive a collection because they are waiting to be finalized. If these objects hold references to other objects then those objects also survive but are not counted by this counter; the \"Promoted Finalization-Memory from Gen 0\" and \"Promoted Finalization-Memory from Gen 1\" counters represent all the memory that survived due to finalization. This counter is not a cumulative counter; its updated at the end of every GC with count of the survivors during that particular GC only. This counter was designed to indicate the extra overhead that the application might incur because of finalization."): ToInstance Amended, DisplayName("Finalization Survivors"): ToInstance Amended] FinalizationSurvivors = 5027;
    [Description("This counter displays the maximum bytes that can be allocated in generation 0 (Gen 0); its does not indicate the current number of bytes allocated in Gen 0. A Gen 0 GC is triggered when the allocations since the last GC exceed this size. The Gen 0 size is tuned by the Garbage Collector and can change during the execution of the application. At the end of a Gen 0 collection the size of the Gen 0 heap is infact 0 bytes; this counter displays the size (in bytes) of allocations that would trigger the next Gen 0 GC. This counter is updated at the end of a GC; its not updated on every allocation."): ToInstance Amended, DisplayName("Gen 0 heap size"): ToInstance Amended] Gen0heapsize = 23615828;
    [Description("This counter displays the bytes per second that are promoted from generation 0 (youngest) to generation 1; objects that are promoted just because they are waiting to be finalized are not included in this counter. Memory is promoted when it survives a garbage collection. This counter was designed as an indicator of relatively long-lived objects being created per sec. This counter displays the difference between the values observed in the last two samples divided by the duration of the sample interval."): ToInstance Amended, DisplayName("Gen 0 Promoted Bytes/Sec"): ToInstance Amended] Gen0PromotedBytesPerSec = 0;
    [Description("This counter displays the current number of bytes in generation 1 (Gen 1); this counter does not display the maximum size of Gen 1. Objects are not directly allocated in this generation; they are promoted from previous Gen 0 GCs. This counter is updated at the end of a GC; its not updated on every allocation."): ToInstance Amended, DisplayName("Gen 1 heap size"): ToInstance Amended] Gen1heapsize = 1311568;
    [Description("This counter displays the bytes per second that are promoted from generation 1 to generation 2 (oldest); objects that are promoted just because they are waiting to be finalized are not included in this counter. Memory is promoted when it survives a garbage collection. Nothing is promoted from generation 2 since it is the oldest. This counter was designed as an indicator of very long-lived objects being created per sec. This counter displays the difference between the values observed in the last two samples divided by the duration of the sample interval."): ToInstance Amended, DisplayName("Gen 1 Promoted Bytes/Sec"): ToInstance Amended] Gen1PromotedBytesPerSec = 0;
    [Description("This counter displays the current number of bytes in generation 2 (Gen 2). Objects are not directly allocated in this generation; they are promoted from Gen 1 during previous Gen 1 GCs. This counter is updated at the end of a GC; its not updated on every allocation."): ToInstance Amended, DisplayName("Gen 2 heap size"): ToInstance Amended] Gen2heapsize = 5817308;
    [Description("This counter displays the current size of the Large Object Heap in bytes. Objects greater than 20 KBytes are treated as large objects by the Garbage Collector and are directly allocated in a special heap; they are not promoted through the generations. This counter is updated at the end of a GC; its not updated on every allocation."): ToInstance Amended, DisplayName("Large Object Heap size"): ToInstance Amended] LargeObjectHeapsize = 3049672;
    Name = "_Global_";
    [Description("This counter is the sum of four other counters; Gen 0 Heap Size; Gen 1 Heap Size; Gen 2 Heap Size and the Large Object Heap Size. This counter indicates the current memory allocated in bytes on the GC Heaps."): ToInstance Amended, DisplayName("# Bytes in all Heaps"): ToInstance Amended] NumberBytesinallHeaps = 10178548;
    [Description("This counter displays the current number of GC Handles in use. GCHandles are handles to resources external to the CLR and the managed environment. Handles occupy small amounts of memory in the GCHeap but potentially expensive unmanaged resources."): ToInstance Amended, DisplayName("# GC Handles"): ToInstance Amended] NumberGCHandles = 3651;
    [Description("This counter displays the number of times the generation 0 objects (youngest; most recently allocated) are garbage collected (Gen 0 GC) since the start of the application. Gen 0 GC occurs when the available memory in generation 0 is not sufficient to satisfy an allocation request. This counter is incremented at the end of a Gen 0 GC. Higher generation GCs include all lower generation GCs. This counter is explicitly incremented when a higher generation (Gen 1 or Gen 2) GC occurs. _Global_ counter value is not accurate and should be ignored. This counter displays the last observed value."): ToInstance Amended, DisplayName("# Gen 0 Collections"): ToInstance Amended] NumberGen0Collections = 107;
    [Description("This counter displays the number of times the generation 1 objects are garbage collected since the start of the application. The counter is incremented at the end of a Gen 1 GC. Higher generation GCs include all lower generation GCs. This counter is explicitly incremented when a higher generation (Gen 2) GC occurs. _Global_ counter value is not accurate and should be ignored. This counter displays the last observed value."): ToInstance Amended, DisplayName("# Gen 1 Collections"): ToInstance Amended] NumberGen1Collections = 42;
    [Description("This counter displays the number of times the generation 2 objects (older) are garbage collected since the start of the application. The counter is incremented at the end of a Gen 2 GC (also called full GC). _Global_ counter value is not accurate and should be ignored. This counter displays the last observed value."): ToInstance Amended, DisplayName("# Gen 2 Collections"): ToInstance Amended] NumberGen2Collections = 7;
    [Description("This counter displays the peak number of times a garbage collection was performed because of an explicit call to GC.Collect. Its a good practice to let the GC tune the frequency of its collections."): ToInstance Amended, DisplayName("# Induced GC"): ToInstance Amended] NumberInducedGC = 61;
    [Description("This counter displays the number of pinned objects encountered in the last GC. This counter tracks the pinned objects only in the heaps that were garbage collected e.g. a Gen 0 GC would cause enumeration of pinned objects in the generation 0 heap only. A pinned object is one that the Garbage Collector cannot move in memory."): ToInstance Amended, DisplayName("# of Pinned Objects"): ToInstance Amended] NumberofPinnedObjects = 48;
    [Description("This counter displays the current number of sync blocks in use. Sync blocks are per-object data structures allocated for storing synchronization information. Sync blocks hold weak references to managed objects and need to be scanned by the Garbage Collector. Sync blocks are not limited to storing synchronization information and can also store COM interop metadata. This counter was designed to indicate performance problems with heavy use of synchronization primitives."): ToInstance Amended, DisplayName("# of Sink Blocks in use"): ToInstance Amended] NumberofSinkBlocksinuse = 2390;
    [Description("This counter displays the amount of virtual memory (in bytes) currently committed by the Garbage Collector. (Committed memory is the physical memory for which space has been reserved on the disk paging file)."): ToInstance Amended, DisplayName("# Total committed Bytes"): ToInstance Amended] NumberTotalcommittedBytes = 28429888;
    [Description("This counter displays the amount of virtual memory (in bytes) currently reserved by the Garbage Collector. (Reserved memory is the virtual memory space reserved for the application but no disk or main memory pages have been used.)"): ToInstance Amended, DisplayName("# Total reserved Bytes"): ToInstance Amended] NumberTotalreservedBytes = 134192704;
    [Description("% Time in GC is the percentage of elapsed time that was spent in performing a garbage collection (GC) since the last GC cycle. This counter is usually an indicator of the work done by the Garbage Collector on behalf of the application to collect and compact memory. This counter is updated only at the end of every GC and the counter value reflects the last observed value; its not an average."): ToInstance Amended, DisplayName("% Time in GC"): ToInstance Amended] PercentTimeinGC = 0;
    [Description("This counter displays the bytes of memory that are promoted from generation 0 to generation 1 just because they are waiting to be finalized. This counter displays the value observed at the end of the last GC; its not a cumulative counter."): ToInstance Amended, DisplayName("Promoted Finalization-Memory from Gen 0"): ToInstance Amended] PromotedFinalizationMemoryfromGen0 = 95100;
    [Description("This counter displays the bytes of memory that are promoted from generation 1 to generation 2 just because they are waiting to be finalized. This counter displays the value observed at the end of the last GC; its not a cumulative counter. This counter is reset to 0 if the last GC was a Gen 0 GC only."): ToInstance Amended, DisplayName("Promoted Finalization-Memory from Gen 1"): ToInstance Amended] PromotedFinalizationMemoryfromGen1 = 0;
    [Description("This counter displays the bytes of memory that survive garbage collection (GC) and are promoted from generation 0 to generation 1; objects that are promoted just because they are waiting to be finalized are not included in this counter. This counter displays the value observed at the end of the last GC; its not a cumulative counter."): ToInstance Amended, DisplayName("Promoted Memory from Gen 0"): ToInstance Amended] PromotedMemoryfromGen0 = 535868;
    [Description("This counter displays the bytes of memory that survive garbage collection (GC) and are promoted from generation 1 to generation 2; objects that are promoted just because they are waiting to be finalized are not included in this counter. This counter displays the value observed at the end of the last GC; its not a cumulative counter. This counter is reset to 0 if the last GC was a Gen 0 GC only."): ToInstance Amended, DisplayName("Promoted Memory from Gen 1"): ToInstance Amended] PromotedMemoryfromGen1 = 0;
   };