53 experimental(intx, ShenandoahHumongousThreshold, 100, \
54 "How large should the object be to get allocated in humongous " \
55 "region, in percents of heap region size. This also caps the " \
56 "maximum TLAB size.") \
57 \
58 product(ccstr, ShenandoahGCHeuristics, "adaptive", \
59 "The heuristics to use in Shenandoah GC. Possible values:" \
60 " *) adaptive - adapt to maintain the given amount of free heap;" \
61 " *) static - start concurrent GC when static free heap " \
62 " threshold and static allocation threshold are " \
63 " tripped;" \
64 " *) aggressive - run concurrent GC continuously, evacuate " \
65 " everything;" \
66 " *) compact - run GC with lower footprint target, may end up " \
67 " doing continuous GC, evacuate lots of live " \
68 " objects, uncommit heap aggressively;") \
69 \
70 product(ccstr, ShenandoahGCMode, "normal", \
71 "The GC mode to use in Shenandoah GC. Possible values" \
72 " *) normal - normal GC (mark-evac-update)" \
73 " *) passive - disable concurrent GC, do stop-the-world GC") \
74 \
75 experimental(ccstr, ShenandoahUpdateRefsEarly, "adaptive", \
76 "Run a separate concurrent reference updating phase after" \
77 "concurrent evacuation. Possible values: 'on', 'off', 'adaptive'")\
78 \
79 experimental(uintx, ShenandoahRefProcFrequency, 5, \
80 "How often should (weak, soft, etc) references be processed. " \
81 "References get processed at every Nth GC cycle. Set to zero " \
82 "to disable reference processing.") \
83 \
84 experimental(uintx, ShenandoahUnloadClassesFrequency, 5, \
85 "How often should classes get unloaded. " \
86 "Class unloading is performed at every Nth GC cycle. " \
87 "Set to zero to disable class unloading during concurrent GC.") \
88 \
89 experimental(uintx, ShenandoahGarbageThreshold, 60, \
90 "Sets the percentage of garbage a region need to contain before " \
91 "it can be marked for collection. Does not apply to all " \
92 "heuristics.") \
306 "How many items are processed during one marking step") \
307 \
308 experimental(uintx, ShenandoahParallelRegionStride, 1024, \
309 "How many regions are processed in one stride during parallel " \
310 "iteration.") \
311 \
312 experimental(intx, ShenandoahSATBBufferSize, 1 * K, \
313 "Number of entries in an SATB log buffer.") \
314 \
315 experimental(uintx, ShenandoahSATBBufferFlushInterval, 100, \
316 "Forcefully flush non-empty SATB buffers at this interval. " \
317 "Time is in milliseconds.") \
318 \
319 experimental(bool, ShenandoahPreclean, true, \
320 "Do concurrent preclean phase before final mark: process " \
321 "definitely alive references to avoid dealing with them during " \
322 "pause.") \
323 \
324 diagnostic(bool, ShenandoahSATBBarrier, true, \
325 "Turn on/off SATB barriers in Shenandoah") \
326 \
327 diagnostic(bool, ShenandoahCASBarrier, true, \
328 "Turn on/off CAS barriers in Shenandoah") \
329 \
330 diagnostic(bool, ShenandoahCloneBarrier, true, \
331 "Turn on/off clone barriers in Shenandoah") \
332 \
333 diagnostic(bool, ShenandoahLoadRefBarrier, true, \
334 "Turn on/off load-reference barriers in Shenandoah") \
335 \
336 experimental(bool, ShenandoahConcurrentScanCodeRoots, true, \
337 "Scan code roots concurrently, instead of during a pause") \
338 \
339 experimental(uintx, ShenandoahCodeRootsStyle, 2, \
340 "Use this style to scan code cache:" \
341 " 0 - sequential iterator;" \
342 " 1 - parallel iterator;" \
343 " 2 - parallel iterator with cset filters;") \
344 \
345 diagnostic(bool, ShenandoahOptimizeStaticFinals, true, \
|
53 experimental(intx, ShenandoahHumongousThreshold, 100, \
54 "How large should the object be to get allocated in humongous " \
55 "region, in percents of heap region size. This also caps the " \
56 "maximum TLAB size.") \
57 \
58 product(ccstr, ShenandoahGCHeuristics, "adaptive", \
59 "The heuristics to use in Shenandoah GC. Possible values:" \
60 " *) adaptive - adapt to maintain the given amount of free heap;" \
61 " *) static - start concurrent GC when static free heap " \
62 " threshold and static allocation threshold are " \
63 " tripped;" \
64 " *) aggressive - run concurrent GC continuously, evacuate " \
65 " everything;" \
66 " *) compact - run GC with lower footprint target, may end up " \
67 " doing continuous GC, evacuate lots of live " \
68 " objects, uncommit heap aggressively;") \
69 \
70 product(ccstr, ShenandoahGCMode, "normal", \
71 "The GC mode to use in Shenandoah GC. Possible values" \
72 " *) normal - normal GC (mark-evac-update)" \
73 " *) traversal - traversal GC (single-pass)" \
74 " *) passive - disable concurrent GC, do stop-the-world GC") \
75 \
76 experimental(ccstr, ShenandoahUpdateRefsEarly, "adaptive", \
77 "Run a separate concurrent reference updating phase after" \
78 "concurrent evacuation. Possible values: 'on', 'off', 'adaptive'")\
79 \
80 experimental(uintx, ShenandoahRefProcFrequency, 5, \
81 "How often should (weak, soft, etc) references be processed. " \
82 "References get processed at every Nth GC cycle. Set to zero " \
83 "to disable reference processing.") \
84 \
85 experimental(uintx, ShenandoahUnloadClassesFrequency, 5, \
86 "How often should classes get unloaded. " \
87 "Class unloading is performed at every Nth GC cycle. " \
88 "Set to zero to disable class unloading during concurrent GC.") \
89 \
90 experimental(uintx, ShenandoahGarbageThreshold, 60, \
91 "Sets the percentage of garbage a region need to contain before " \
92 "it can be marked for collection. Does not apply to all " \
93 "heuristics.") \
307 "How many items are processed during one marking step") \
308 \
309 experimental(uintx, ShenandoahParallelRegionStride, 1024, \
310 "How many regions are processed in one stride during parallel " \
311 "iteration.") \
312 \
313 experimental(intx, ShenandoahSATBBufferSize, 1 * K, \
314 "Number of entries in an SATB log buffer.") \
315 \
316 experimental(uintx, ShenandoahSATBBufferFlushInterval, 100, \
317 "Forcefully flush non-empty SATB buffers at this interval. " \
318 "Time is in milliseconds.") \
319 \
320 experimental(bool, ShenandoahPreclean, true, \
321 "Do concurrent preclean phase before final mark: process " \
322 "definitely alive references to avoid dealing with them during " \
323 "pause.") \
324 \
325 diagnostic(bool, ShenandoahSATBBarrier, true, \
326 "Turn on/off SATB barriers in Shenandoah") \
327 \
328 diagnostic(bool, ShenandoahKeepAliveBarrier, true, \
329 "Turn on/off keep alive barriers in Shenandoah") \
330 \
331 diagnostic(bool, ShenandoahStoreValEnqueueBarrier, false, \
332 "Turn on/off enqueuing of oops for storeval barriers") \
333 \
334 diagnostic(bool, ShenandoahCASBarrier, true, \
335 "Turn on/off CAS barriers in Shenandoah") \
336 \
337 diagnostic(bool, ShenandoahCloneBarrier, true, \
338 "Turn on/off clone barriers in Shenandoah") \
339 \
340 diagnostic(bool, ShenandoahLoadRefBarrier, true, \
341 "Turn on/off load-reference barriers in Shenandoah") \
342 \
343 experimental(bool, ShenandoahConcurrentScanCodeRoots, true, \
344 "Scan code roots concurrently, instead of during a pause") \
345 \
346 experimental(uintx, ShenandoahCodeRootsStyle, 2, \
347 "Use this style to scan code cache:" \
348 " 0 - sequential iterator;" \
349 " 1 - parallel iterator;" \
350 " 2 - parallel iterator with cset filters;") \
351 \
352 diagnostic(bool, ShenandoahOptimizeStaticFinals, true, \
|