Skip to content

New GC options #19356

Closed
Closed

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).

Activity

  1. self-assigned this
    on Jul 7, 2020
  2. added a commit that references this issue on Jul 11, 2020
    62c72cf
  3. added a commit that references this issue on Jul 16, 2020
    e34a21e
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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