Adjust performance parameters related to garbage collection.
Syntax
uint32_t JS_GetGCParameter(JSRuntime *rt, JSGCParamKey key); void JS_SetGCParameter(JSRuntime *rt, JSGCParamKey key, uint32_t value); uint32_t JS_GetGCParameterForThread(JSContext *cx, JSGCParamKey key); // Added in SpiderMonkeySidebar 17 void JS_SetGCParameterForThread(JSContext *cx, JSGCParamKey key, uint32_t value); // Added in SpiderMonkeySidebar 17
| Name | Type | Description | 
|---|---|---|
| rt | JSRuntime * | The runtime to configure. | 
| cx | JSContext * | The context to configure. Requires request. In a JS_THREADSAFEbuild, the caller must be in a request on thisJSContext. | 
| key | JSGCParamKey | Specifies which garbage collection parameter to get or set. | 
| value | uint32_t | ( JS_SetGCParameteronly) The value to assign to the parameter. | 
typedef enum JSGCParamKey {
    JSGC_MAX_BYTES,
    JSGC_MAX_MALLOC_BYTES,
    JSGC_BYTES,
    JSGC_NUMBER,
    JSGC_MAX_CODE_CACHE_BYTES,
    JSGC_MODE,
    JSGC_UNUSED_CHUNKS,
    JSGC_TOTAL_CHUNKS,
    JSGC_SLICE_TIME_BUDGET,
    JSGC_MARK_STACK_LIMIT,
    JSGC_HIGH_FREQUENCY_TIME_LIMIT,
    JSGC_HIGH_FREQUENCY_LOW_LIMIT,
    JSGC_HIGH_FREQUENCY_HIGH_LIMIT,
    JSGC_HIGH_FREQUENCY_HEAP_GROWTH_MAX,
    JSGC_HIGH_FREQUENCY_HEAP_GROWTH_MIN,
    JSGC_LOW_FREQUENCY_HEAP_GROWTH,
    JSGC_DYNAMIC_HEAP_GROWTH,
    JSGC_DYNAMIC_MARK_SLICE,
    JSGC_ALLOCATION_THRESHOLD,
    JSGC_DECOMMIT_THRESHOLD,
    JSGC_MIN_EMPTY_CHUNK_COUNT,
    JSGC_MAX_EMPTY_CHUNK_COUNT,
} JSGCParamKey;
| Value | Description | 
|---|---|
| JSGC_MAX_BYTES | Maximum nominal heap before last ditch GC. | 
| JSGC_MAX_MALLOC_BYTES | Number of JS_malloc bytes before last ditch GC. | 
| JSGC_BYTES | Amount of bytes allocated by the GC. Added in SpiderMonkey 1.8.1 | 
| JSGC_NUMBER | Number of times GC has been invoked. Includes both major and minor GC. Added in SpiderMonkey 1.8.1 | 
| JSGC_MAX_CODE_CACHE_BYTES | Max size of the code cache in bytes. Added in SpiderMonkey 17 | 
| JSGC_MODE | Select GC mode. Added in SpiderMonkey 17 | 
| JSGC_UNUSED_CHUNKS | Number of cached empty GC chunks Added in SpiderMonkey 17. | 
| JSGC_TOTAL_CHUNKS | Total number of allocated GC chunks. Added in SpiderMonkey 17 | 
| JSGC_SLICE_TIME_BUDGET | Max milliseconds to spend in an incremental GC slice. Added in SpiderMonkey 17 | 
| JSGC_MARK_STACK_LIMIT | Maximum size the GC mark stack can grow to. Added in SpiderMonkey 17 | 
| JSGC_HIGH_FREQUENCY_TIME_LIMIT | GCs less than this far apart in time will be considered 'high-frequency GCs'. See setGCLastBytes in jsgc.cpp. Added in SpiderMonkey 17 | 
| JSGC_HIGH_FREQUENCY_LOW_LIMIT | Start of dynamic heap growth. Added in SpiderMonkey 17 | 
| JSGC_HIGH_FREQUENCY_HIGH_LIMIT | End of dynamic heap growth. Added in SpiderMonkey 17 | 
| JSGC_HIGH_FREQUENCY_HEAP_GROWTH_MAX | Upper bound of heap growth. Added in SpiderMonkey 17 | 
| JSGC_HIGH_FREQUENCY_HEAP_GROWTH_MIN | Lower bound of heap growth. Added in SpiderMonkey 17 | 
| JSGC_LOW_FREQUENCY_HEAP_GROWTH | Heap growth for low frequency GCs. Added in SpiderMonkey 17 | 
| JSGC_DYNAMIC_HEAP_GROWTH | If false, the heap growth factor is fixed at 3. If true, it is determined based on whether GCs are high- or low- frequency. Added in SpiderMonkey 17 | 
| JSGC_DYNAMIC_MARK_SLICE | If true, high-frequency GCs will use a longer mark slice. Added in SpiderMonkey 17 | 
| JSGC_ALLOCATION_THRESHOLD | Lower limit after which we limit the heap growth. Added in SpiderMonkey 24 | 
| JSGC_DECOMMIT_THRESHOLD | We decommit memory lazily. If more than this number of megabytes is available to be decommitted, then JS_MaybeGC will trigger a shrinking GC to decommit it. Added in SpiderMonkey 24 | 
| JSGC_MIN_EMPTY_CHUNK_COUNT | We try to keep at least this many unused chunks in the free chunk pool at all times, even after a shrinking GC. Added in SpiderMonkey 38 | 
| JSGC_MAX_EMPTY_CHUNK_COUNT | We never keep more than this many unused chunks in the free chunk pool.Added in SpiderMonkey 38 | 
Description
JS_GetGCParameter returns the current parameter of the garbage collection.
If successful, JS_GetGCParameter returns the current parameter.
JS_SetGCParameter ajusts the parameter of the garbage collection.
See Also
- MXR ID Search for JS_GetGCParameter
- MXR ID Search for JS_SetGCParameter
- bug 474801
  - JSGC_BYTES
- JSGC_NUMBER
 
- bug 474497
  - JSGC_MAX_CODE_CACHE_BYTES
- JS_GetGCParameterForThread
- JS_SetGCParameterForThread
 
- bug 624229
  - JSGC_MODE
 
- bug 631733
  - JSGC_UNUSED_CHUNKS
 
- bug 674480
  - JSGC_TOTAL_CHUNKS
 
- bug 641025
  - JSGC_SLICE_TIME_BUDGET
 
- bug 673551
  - JSGC_MARK_STACK_LIMIT
 
- bug 765435
  - JSGC_HIGH_FREQUENCY_TIME_LIMIT
- JSGC_HIGH_FREQUENCY_LOW_LIMIT
- JSGC_HIGH_FREQUENCY_HIGH_LIMIT
- JSGC_HIGH_FREQUENCY_HEAP_GROWTH_MAX
- JSGC_HIGH_FREQUENCY_HEAP_GROWTH_MIN
- JSGC_LOW_FREQUENCY_HEAP_GROWTH
- JSGC_DYNAMIC_HEAP_GROWTH
- JSGC_DYNAMIC_MARK_SLICE
 
- bug 800063
  - JSGC_ALLOCATION_THRESHOLD
 
- bug 871005
  - JSGC_DECOMMIT_THRESHOLD
 
- bug 1017141
  - JSGC_MIN_EMPTY_CHUNK_COUNT
- JSGC_MAX_EMPTY_CHUNK_COUNT