-
Notifications
You must be signed in to change notification settings - Fork 1.6k
/
Copy pathGCMemoryInfo.xml
494 lines (478 loc) · 29.1 KB
/
GCMemoryInfo.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
<Type Name="GCMemoryInfo" FullName="System.GCMemoryInfo">
<TypeSignature Language="C#" Value="public readonly struct GCMemoryInfo" />
<TypeSignature Language="ILAsm" Value=".class public sequential ansi sealed beforefieldinit GCMemoryInfo extends System.ValueType" />
<TypeSignature Language="DocId" Value="T:System.GCMemoryInfo" />
<TypeSignature Language="VB.NET" Value="Public Structure GCMemoryInfo" />
<TypeSignature Language="F#" Value="type GCMemoryInfo = struct" />
<TypeSignature Language="C++ CLI" Value="public value class GCMemoryInfo" />
<AssemblyInfo>
<AssemblyName>System.Runtime</AssemblyName>
<AssemblyVersion>4.2.1.0</AssemblyVersion>
<AssemblyVersion>4.2.2.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>System.ValueType</BaseTypeName>
</Base>
<Interfaces />
<Attributes>
<Attribute>
<AttributeName Language="C#">[System.Runtime.CompilerServices.IsReadOnly]</AttributeName>
<AttributeName Language="F#">[<System.Runtime.CompilerServices.IsReadOnly>]</AttributeName>
</Attribute>
</Attributes>
<Docs>
<summary>Provides a set of APIs that can be used to retrieve garbage collection information.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
A garbage collection (GC) is identified by its <xref:System.GCMemoryInfo.Index>, which starts from 1 and increases with each GC. If you ask for a GC that doesn't exist, you'll get all 0's in the info, including the <xref:System.GCMemoryInfo.Index>. For example, you'll get 0's if you call the <xref:System.GC.GetGCMemoryInfo%2A> method before a GC has happened, or you ask for a GC of <xref:System.GCKind.FullBlocking?displayProperty=nameWithType> and no full blocking GCs have happened. You can use index 0 to detect that no GCs, or no GCs of the kind you specified, have occurred.
]]></format>
</remarks>
</Docs>
<Members>
<Member MemberName="Compacted">
<MemberSignature Language="C#" Value="public bool Compacted { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance bool Compacted" />
<MemberSignature Language="DocId" Value="P:System.GCMemoryInfo.Compacted" />
<MemberSignature Language="VB.NET" Value="Public ReadOnly Property Compacted As Boolean" />
<MemberSignature Language="F#" Value="member this.Compacted : bool" Usage="System.GCMemoryInfo.Compacted" />
<MemberSignature Language="C++ CLI" Value="public:
 property bool Compacted { bool get(); };" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Runtime</AssemblyName>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets a value that indicates if this is a compacting GC or not.</summary>
<value>
<see langword="true" /> if this is a compacting GC; <see langword="false" /> otherwise.</value>
<remarks>A compacting GC is when space occupied by dead objects is reclaimed and surviving objects are compacted.</remarks>
</Docs>
</Member>
<Member MemberName="Concurrent">
<MemberSignature Language="C#" Value="public bool Concurrent { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance bool Concurrent" />
<MemberSignature Language="DocId" Value="P:System.GCMemoryInfo.Concurrent" />
<MemberSignature Language="VB.NET" Value="Public ReadOnly Property Concurrent As Boolean" />
<MemberSignature Language="F#" Value="member this.Concurrent : bool" Usage="System.GCMemoryInfo.Concurrent" />
<MemberSignature Language="C++ CLI" Value="public:
 property bool Concurrent { bool get(); };" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Runtime</AssemblyName>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets a value that indicates if this is a concurrent GC (background GC) or not.</summary>
<value>
<see langword="true" /> if this is a concurrent GC (background GC); <see langword="false" /> otherwise.</value>
<remarks>To be added.</remarks>
<related type="Article" href="/dotnet/standard/garbage-collection/background-gc">Background garbage collection</related>
</Docs>
</Member>
<Member MemberName="FinalizationPendingCount">
<MemberSignature Language="C#" Value="public long FinalizationPendingCount { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance int64 FinalizationPendingCount" />
<MemberSignature Language="DocId" Value="P:System.GCMemoryInfo.FinalizationPendingCount" />
<MemberSignature Language="VB.NET" Value="Public ReadOnly Property FinalizationPendingCount As Long" />
<MemberSignature Language="F#" Value="member this.FinalizationPendingCount : int64" Usage="System.GCMemoryInfo.FinalizationPendingCount" />
<MemberSignature Language="C++ CLI" Value="public:
 property long FinalizationPendingCount { long get(); };" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Runtime</AssemblyName>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int64</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the number of objects that are ready for finalization that this GC observed.</summary>
<value>The total number of objects observed by this GC that are ready for finalization.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="FragmentedBytes">
<MemberSignature Language="C#" Value="public long FragmentedBytes { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance int64 FragmentedBytes" />
<MemberSignature Language="DocId" Value="P:System.GCMemoryInfo.FragmentedBytes" />
<MemberSignature Language="VB.NET" Value="Public ReadOnly Property FragmentedBytes As Long" />
<MemberSignature Language="F#" Value="member this.FragmentedBytes : int64" Usage="System.GCMemoryInfo.FragmentedBytes" />
<MemberSignature Language="C++ CLI" Value="public:
 property long FragmentedBytes { long get(); };" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Runtime</AssemblyName>
<AssemblyVersion>4.2.1.0</AssemblyVersion>
<AssemblyVersion>4.2.2.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int64</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the total fragmentation when the last garbage collection occurred.</summary>
<value>The total fragmentation when the last garbage collection occurred.</value>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
For example, the application has the following five objects:
`| OBJ_A | OBJ_B | OBJ_C | OBJ_D | OBJ_E |`
If `OBJ_B`, `OBJ_C`, and `OBJ_E` are garbage collected but the heap is not compacted, the resulting heap will look like the following:
`| OBJ_A | F | OBJ_D |`
The memory between `OBJ_A` and `OBJ_D`, which is marked `F`, is considered part of the `FragmentedBytes` and is used to allocate new objects.
The memory after `OBJ_D` is not considered part of the `FragmentedBytes` but is also used to allocate new objects.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="Generation">
<MemberSignature Language="C#" Value="public int Generation { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance int32 Generation" />
<MemberSignature Language="DocId" Value="P:System.GCMemoryInfo.Generation" />
<MemberSignature Language="VB.NET" Value="Public ReadOnly Property Generation As Integer" />
<MemberSignature Language="F#" Value="member this.Generation : int" Usage="System.GCMemoryInfo.Generation" />
<MemberSignature Language="C++ CLI" Value="public:
 property int Generation { int get(); };" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Runtime</AssemblyName>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the generation this GC collected. Collecting a generation also collects younger generations.</summary>
<value>The generation this GC collected.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="GenerationInfo">
<MemberSignature Language="C#" Value="public ReadOnlySpan<GCGenerationInfo> GenerationInfo { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance valuetype System.ReadOnlySpan`1<valuetype System.GCGenerationInfo> GenerationInfo" />
<MemberSignature Language="DocId" Value="P:System.GCMemoryInfo.GenerationInfo" />
<MemberSignature Language="VB.NET" Value="Public ReadOnly Property GenerationInfo As ReadOnlySpan(Of GCGenerationInfo)" />
<MemberSignature Language="F#" Value="member this.GenerationInfo : ReadOnlySpan<GCGenerationInfo>" Usage="System.GCMemoryInfo.GenerationInfo" />
<MemberSignature Language="C++ CLI" Value="public:
 property ReadOnlySpan<GCGenerationInfo> GenerationInfo { ReadOnlySpan<GCGenerationInfo> get(); };" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Runtime</AssemblyName>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.ReadOnlySpan<System.GCGenerationInfo></ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the generation information for all generations.</summary>
<value>The generation information for all generations.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="HeapSizeBytes">
<MemberSignature Language="C#" Value="public long HeapSizeBytes { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance int64 HeapSizeBytes" />
<MemberSignature Language="DocId" Value="P:System.GCMemoryInfo.HeapSizeBytes" />
<MemberSignature Language="VB.NET" Value="Public ReadOnly Property HeapSizeBytes As Long" />
<MemberSignature Language="F#" Value="member this.HeapSizeBytes : int64" Usage="System.GCMemoryInfo.HeapSizeBytes" />
<MemberSignature Language="C++ CLI" Value="public:
 property long HeapSizeBytes { long get(); };" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Runtime</AssemblyName>
<AssemblyVersion>4.2.1.0</AssemblyVersion>
<AssemblyVersion>4.2.2.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int64</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the total heap size when the last garbage collection occurred.</summary>
<value>The total heap size, in bytes, when the last garbage collection occurred.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="HighMemoryLoadThresholdBytes">
<MemberSignature Language="C#" Value="public long HighMemoryLoadThresholdBytes { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance int64 HighMemoryLoadThresholdBytes" />
<MemberSignature Language="DocId" Value="P:System.GCMemoryInfo.HighMemoryLoadThresholdBytes" />
<MemberSignature Language="VB.NET" Value="Public ReadOnly Property HighMemoryLoadThresholdBytes As Long" />
<MemberSignature Language="F#" Value="member this.HighMemoryLoadThresholdBytes : int64" Usage="System.GCMemoryInfo.HighMemoryLoadThresholdBytes" />
<MemberSignature Language="C++ CLI" Value="public:
 property long HighMemoryLoadThresholdBytes { long get(); };" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Runtime</AssemblyName>
<AssemblyVersion>4.2.1.0</AssemblyVersion>
<AssemblyVersion>4.2.2.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int64</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the high memory load threshold when the last garbage collection occurred.</summary>
<value>The high memory load threshold, in bytes, when the last garbage collection occurred.</value>
<remarks>Most of the GC performance heuristics are based on per-process measurements. However, to avoid paging, GC is aware of the global physical memory load on the machine or VM or in the container. GC recognizes a certain memory load percentage as a "high memory load situation". When the memory load percentage is over that threshold, GC becomes more aggressive and will do more full blocking GCs if necessary to reduce the heap size.</remarks>
</Docs>
</Member>
<Member MemberName="Index">
<MemberSignature Language="C#" Value="public long Index { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance int64 Index" />
<MemberSignature Language="DocId" Value="P:System.GCMemoryInfo.Index" />
<MemberSignature Language="VB.NET" Value="Public ReadOnly Property Index As Long" />
<MemberSignature Language="F#" Value="member this.Index : int64" Usage="System.GCMemoryInfo.Index" />
<MemberSignature Language="C++ CLI" Value="public:
 property long Index { long get(); };" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Runtime</AssemblyName>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int64</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the index of this GC.</summary>
<value>The index of this GC.</value>
<remarks>GC indices start with 1 and are increased at the beginning of a GC.
Since the information is updated at the end of a GC, this means you can get the information for a background GC with a smaller index than a foreground GC that finished earlier.</remarks>
</Docs>
</Member>
<Member MemberName="MemoryLoadBytes">
<MemberSignature Language="C#" Value="public long MemoryLoadBytes { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance int64 MemoryLoadBytes" />
<MemberSignature Language="DocId" Value="P:System.GCMemoryInfo.MemoryLoadBytes" />
<MemberSignature Language="VB.NET" Value="Public ReadOnly Property MemoryLoadBytes As Long" />
<MemberSignature Language="F#" Value="member this.MemoryLoadBytes : int64" Usage="System.GCMemoryInfo.MemoryLoadBytes" />
<MemberSignature Language="C++ CLI" Value="public:
 property long MemoryLoadBytes { long get(); };" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Runtime</AssemblyName>
<AssemblyVersion>4.2.1.0</AssemblyVersion>
<AssemblyVersion>4.2.2.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int64</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the physical memory load when the last garbage collection occurred.</summary>
<value>The physical memory load, in bytes, when the last garbage collection occurred.</value>
<remarks>
<para>When a process is not running in a container or running in a container without a memory limit:
On Windows, the MemoryLoadBytes is obtained from the <see href="/windows/win32/api/winbase/ns-winbase-memorystatus">MEMORYSTATUS structure</see> in bytes divided by the total physical memory.
On Linux, the MemoryLoadBytes is obtained from reading the MemAvailable field from `/proc/meminfo` divided by the total physical memory.</para>
<para>When a process is running in a container with a memory limit:
On Windows, the MemoryLoadBytes is obtained from the Working Set Size field in the <see href="/windows/win32/api/psapi/nf-psapi-getprocessmemoryinfo">PROCESS_MEMORY_COUNTERS structure</see> in bytes divided by the memory limit.
On Linux, the MemoryLoadBytes is obtained from the used physical memory via the CGroup Memory Usage file from `/memory.usage_in_bytes` for CGroups v1 and `/memory.current` for CGroups v2 divided by the memory limit.</para>
<para>Data is only brought into physical memory on first touch. If you allocated a big object but haven't actually used it, most of its memory isn't in physical memory. In this case, the allocation won't affect the memory load significantly.</para>
</remarks>
</Docs>
</Member>
<Member MemberName="PauseDurations">
<MemberSignature Language="C#" Value="public ReadOnlySpan<TimeSpan> PauseDurations { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance valuetype System.ReadOnlySpan`1<valuetype System.TimeSpan> PauseDurations" />
<MemberSignature Language="DocId" Value="P:System.GCMemoryInfo.PauseDurations" />
<MemberSignature Language="VB.NET" Value="Public ReadOnly Property PauseDurations As ReadOnlySpan(Of TimeSpan)" />
<MemberSignature Language="F#" Value="member this.PauseDurations : ReadOnlySpan<TimeSpan>" Usage="System.GCMemoryInfo.PauseDurations" />
<MemberSignature Language="C++ CLI" Value="public:
 property ReadOnlySpan<TimeSpan> PauseDurations { ReadOnlySpan<TimeSpan> get(); };" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Runtime</AssemblyName>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.ReadOnlySpan<System.TimeSpan></ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the durations of the pauses when all managed threads are suspended.</summary>
<value>A timespan representing the pause durations.</value>
<remarks> For blocking GCs, there is one pause. Pauses for background GC are illustrated at <see href="/dotnet/standard/garbage-collection/background-gc#background-workstation-vs-server-gc">Background workstation vs. server GC</see>.</remarks>
</Docs>
</Member>
<Member MemberName="PauseTimePercentage">
<MemberSignature Language="C#" Value="public double PauseTimePercentage { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance float64 PauseTimePercentage" />
<MemberSignature Language="DocId" Value="P:System.GCMemoryInfo.PauseTimePercentage" />
<MemberSignature Language="VB.NET" Value="Public ReadOnly Property PauseTimePercentage As Double" />
<MemberSignature Language="F#" Value="member this.PauseTimePercentage : double" Usage="System.GCMemoryInfo.PauseTimePercentage" />
<MemberSignature Language="C++ CLI" Value="public:
 property double PauseTimePercentage { double get(); };" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Runtime</AssemblyName>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Double</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the pause time percentage in the GC so far. If the pause time is 1.2%, this property's value is 1.2. The value is calculated by taking the sum of all GC pauses so far and dividing that by the total elapsed time of the process since the runtime was loaded. This running counter is updated at the end of each GC. It does not distinguish between <see cref="T:System.GCKind" />. That is, at every GC, the calculated value is updated, and when you access this property, it gets the latest calculated value.</summary>
<value>The pause time percentage.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="PinnedObjectsCount">
<MemberSignature Language="C#" Value="public long PinnedObjectsCount { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance int64 PinnedObjectsCount" />
<MemberSignature Language="DocId" Value="P:System.GCMemoryInfo.PinnedObjectsCount" />
<MemberSignature Language="VB.NET" Value="Public ReadOnly Property PinnedObjectsCount As Long" />
<MemberSignature Language="F#" Value="member this.PinnedObjectsCount : int64" Usage="System.GCMemoryInfo.PinnedObjectsCount" />
<MemberSignature Language="C++ CLI" Value="public:
 property long PinnedObjectsCount { long get(); };" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Runtime</AssemblyName>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int64</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the number of pinned objects this GC observed.</summary>
<value>The total number of pinned objects observed by this GC.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="PromotedBytes">
<MemberSignature Language="C#" Value="public long PromotedBytes { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance int64 PromotedBytes" />
<MemberSignature Language="DocId" Value="P:System.GCMemoryInfo.PromotedBytes" />
<MemberSignature Language="VB.NET" Value="Public ReadOnly Property PromotedBytes As Long" />
<MemberSignature Language="F#" Value="member this.PromotedBytes : int64" Usage="System.GCMemoryInfo.PromotedBytes" />
<MemberSignature Language="C++ CLI" Value="public:
 property long PromotedBytes { long get(); };" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Runtime</AssemblyName>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int64</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the promoted bytes for this GC.</summary>
<value>The number of promoted bytes for this GC.</value>
<remarks>The promoted bytes represent the objects from the generations that the garbage collection is collecting that survived.</remarks>
</Docs>
</Member>
<Member MemberName="TotalAvailableMemoryBytes">
<MemberSignature Language="C#" Value="public long TotalAvailableMemoryBytes { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance int64 TotalAvailableMemoryBytes" />
<MemberSignature Language="DocId" Value="P:System.GCMemoryInfo.TotalAvailableMemoryBytes" />
<MemberSignature Language="VB.NET" Value="Public ReadOnly Property TotalAvailableMemoryBytes As Long" />
<MemberSignature Language="F#" Value="member this.TotalAvailableMemoryBytes : int64" Usage="System.GCMemoryInfo.TotalAvailableMemoryBytes" />
<MemberSignature Language="C++ CLI" Value="public:
 property long TotalAvailableMemoryBytes { long get(); };" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Runtime</AssemblyName>
<AssemblyVersion>4.2.1.0</AssemblyVersion>
<AssemblyVersion>4.2.2.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int64</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the total available memory for the garbage collector to use when the last garbage collection occurred.</summary>
<value>The total available memory, in bytes, for the garbage collector to use when the last garbage collection occurred.</value>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
This property value will be the value of the `COMPlus_GCHeapHardLimit` environment variable, or the `Server.GC.HeapHardLimit` value in `runtimeconfig.json`, if either is set.
If the program is run in a container, this value is an implementation-defined fraction of the container's size.
Otherwise, the value of the property is the physical memory on the machine that was available for the garbage collector to use when the last garbage collection occurred.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="TotalCommittedBytes">
<MemberSignature Language="C#" Value="public long TotalCommittedBytes { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance int64 TotalCommittedBytes" />
<MemberSignature Language="DocId" Value="P:System.GCMemoryInfo.TotalCommittedBytes" />
<MemberSignature Language="VB.NET" Value="Public ReadOnly Property TotalCommittedBytes As Long" />
<MemberSignature Language="F#" Value="member this.TotalCommittedBytes : int64" Usage="System.GCMemoryInfo.TotalCommittedBytes" />
<MemberSignature Language="C++ CLI" Value="public:
 property long TotalCommittedBytes { long get(); };" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Runtime</AssemblyName>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int64</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the total committed bytes of the managed heap.</summary>
<value>The total committed bytes of the managed heap.</value>
<remarks>The total committed bytes is the amount of backing store for the memory. On Windows, bytes are committed when `VirtualAlloc` is called with `MEM_COMMIT`. On Linux, bytes are committed when the page mapping is changed to <code>PROT_WRITE | PROT_READ</code>.</remarks>
</Docs>
</Member>
</Members>
</Type>