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_THREADSAFE build, the caller must be in a request on this JSContext . |
key |
JSGCParamKey |
Specifies which garbage collection parameter to get or set. |
value |
uint32_t |
(JS_SetGCParameter only) 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