Skip to content

New GC options #19356

Closed
Closed
@gewarren

Description

@gewarren

GC introduced a few more COMPLUS options to allow people to configure the behavior of the garbage collector. Here is a summary of what those options are and what do they do:

• If the user specifies any one of the COMPLUS_GCHeapHardLimitSOH, COMPLUS_GCHeapHardLimitLOH or COMPLUS_GCHeapHardLimitPOH, he or she must also specify the others (with the exception of COMPLUS_GCHeapHardLimitPOH, which is allowed to be unspecified and assume a default value of 0).
• If the user did not specifies any one of the COMPLUS_GCHeapHardLimitSOH, COMPLUS_GCHeapHardLimitLOH or COMPLUS_GCHeapHardLimitPOH, then we consider COMPLUS_GCHeapHardLimitSOHPercent, COMPLUS_GCHeapHardLimitLOHPercent or COMPLUS_GCHeapHardLimitPOHPercent. These are the percentage equivalents of the above. A value of 1 for COMPLUS_GCHeapHardLimitSOH means we will use 1% of total physical memory for SOH. An additional validation rule is that these percentages should not less than or equal to 0, or greater than or equal to 100. The sum of them should be greater than or equal to 100 as well.

If the user specifies wrong input (e.g. specify COMPLUS_GC
HeapHardLimitSOH but not COMPLUS_GCHeapHardLimitLOH), then the runtime will fail to initialize with E_INVALIDARG.
• If COMPLUS_GCHeapHardLimit is also specified, then it will be ignored. Any allocation that is done by the GC which is not associated with any object heaps (such as the card table) will not be checked against any limit. (It is assumed that they are insignificant compared with user objects).

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions