55 experimental(uintx, ShenandoahMaxRegionSize, 32 * M, \
56 "Maximum heap region size. ") \
57 \
58 experimental(size_t, ShenandoahTargetNumRegions, 2048, \
59 "Target number of regions. We try to get around that many " \
60 "regions, based on ShenandoahMinRegionSize and " \
61 "ShenandoahMaxRegionSizeSize. ") \
62 \
63 product(bool, UseShenandoahMatrix, false, \
64 "Keep a connection matrix and use this to drive collection sets") \
65 \
66 product(ccstr, ShenandoahGCHeuristics, "adaptive", \
67 "The heuristics to use in Shenandoah GC. Possible values: " \
68 "adaptive (adapt to maintain the given amount of free memory), " \
69 "dynamic (start concurrent GC based on amount of free memory, " \
70 "allocation threshold, etc), " \
71 "passive (do not start concurrent GC, wait for Full GC) " \
72 "aggressive (run concurrent GC continuously, evacuate everything), " \
73 "Defaults to adaptive") \
74 \
75 product(uintx, ShenandoahRefProcFrequency, 5, \
76 "How often should (weak, soft, etc) references be processed. " \
77 "References get processed at every Nth GC cycle. " \
78 "Set to 0 to disable reference processing. " \
79 "Defaults to process references every 5 cycles.") \
80 \
81 product(uintx, ShenandoahUnloadClassesFrequency, 5, \
82 "How often should classes get unloaded. " \
83 "Class unloading is performed at every Nth GC cycle. " \
84 "Set to 0 to disable concurrent class unloading. " \
85 "Defaults to unload classes every 5 cycles.") \
86 \
87 product(bool, ShenandoahLogTrace, false, \
88 "Turns on logging in Shenandoah at trace level. ") \
89 \
90 product(bool, ShenandoahLogDebug, false, \
91 "Turns on logging in Shenandoah at debug level. ") \
92 \
93 product(bool, ShenandoahLogInfo, false, \
94 "Turns on logging in Shenandoah at info level. ") \
104 product_rw(uintx, ShenandoahGarbageThreshold, 60, \
105 "Sets the percentage of garbage a region need to contain before " \
106 "it can be marked for collection. Applies to " \
107 "Shenandoah GC dynamic Heuristic mode only (ignored otherwise). " \
108 "Defaults to 60%.") \
109 \
110 product_rw(uintx, ShenandoahFreeThreshold, 10, \
111 "Set the percentage of free heap at which a GC cycle is started. " \
112 "Applies to Shenandoah GC dynamic Heuristic mode only " \
113 "(ignored otherwise). Defaults to 10%.") \
114 \
115 product_rw(uintx, ShenandoahCSetThreshold, 40, \
116 "Set the approximate target percentage of the heap for the" \
117 "collection set. Defaults to 40%.") \
118 product_rw(uintx, ShenandoahAllocationThreshold, 0, \
119 "Set percentage of memory allocated since last GC cycle before " \
120 "a new GC cycle is started. " \
121 "Applies to Shenandoah GC dynamic Heuristic mode only " \
122 "(ignored otherwise). Defauls to 0%.") \
123 \
124 experimental(double, ShenandoahGCWorkerPerJavaThread, 0.5, \
125 "Set GC worker to Java thread ratio when " \
126 "UseDynamicNumberOfGCThreads is enabled") \
127 \
128 experimental(uintx, ShenandoahInitFreeThreshold, 10, \
129 "Initial remaining free threshold for adaptive heuristics") \
130 \
131 experimental(uintx, ShenandoahMinFreeThreshold, 3, \
132 "Minimum remaining free threshold for adaptive heuristics") \
133 \
134 experimental(uintx, ShenandoahMaxFreeThreshold, 70, \
135 "Maximum remaining free threshold for adaptive heuristics") \
136 \
137 experimental(uintx, ShenandoahHappyCyclesThreshold, 5, \
138 "How many successful marking cycles before improving free " \
139 "threshold for adaptive heuristics") \
140 \
141 experimental(uint, ShenandoahMarkLoopStride, 1000, \
142 "How many items are processed during one marking step") \
143 \
|
55 experimental(uintx, ShenandoahMaxRegionSize, 32 * M, \
56 "Maximum heap region size. ") \
57 \
58 experimental(size_t, ShenandoahTargetNumRegions, 2048, \
59 "Target number of regions. We try to get around that many " \
60 "regions, based on ShenandoahMinRegionSize and " \
61 "ShenandoahMaxRegionSizeSize. ") \
62 \
63 product(bool, UseShenandoahMatrix, false, \
64 "Keep a connection matrix and use this to drive collection sets") \
65 \
66 product(ccstr, ShenandoahGCHeuristics, "adaptive", \
67 "The heuristics to use in Shenandoah GC. Possible values: " \
68 "adaptive (adapt to maintain the given amount of free memory), " \
69 "dynamic (start concurrent GC based on amount of free memory, " \
70 "allocation threshold, etc), " \
71 "passive (do not start concurrent GC, wait for Full GC) " \
72 "aggressive (run concurrent GC continuously, evacuate everything), " \
73 "Defaults to adaptive") \
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 product(uintx, ShenandoahRefProcFrequency, 5, \
80 "How often should (weak, soft, etc) references be processed. " \
81 "References get processed at every Nth GC cycle. " \
82 "Set to 0 to disable reference processing. " \
83 "Defaults to process references every 5 cycles.") \
84 \
85 product(uintx, ShenandoahUnloadClassesFrequency, 5, \
86 "How often should classes get unloaded. " \
87 "Class unloading is performed at every Nth GC cycle. " \
88 "Set to 0 to disable concurrent class unloading. " \
89 "Defaults to unload classes every 5 cycles.") \
90 \
91 product(bool, ShenandoahLogTrace, false, \
92 "Turns on logging in Shenandoah at trace level. ") \
93 \
94 product(bool, ShenandoahLogDebug, false, \
95 "Turns on logging in Shenandoah at debug level. ") \
96 \
97 product(bool, ShenandoahLogInfo, false, \
98 "Turns on logging in Shenandoah at info level. ") \
108 product_rw(uintx, ShenandoahGarbageThreshold, 60, \
109 "Sets the percentage of garbage a region need to contain before " \
110 "it can be marked for collection. Applies to " \
111 "Shenandoah GC dynamic Heuristic mode only (ignored otherwise). " \
112 "Defaults to 60%.") \
113 \
114 product_rw(uintx, ShenandoahFreeThreshold, 10, \
115 "Set the percentage of free heap at which a GC cycle is started. " \
116 "Applies to Shenandoah GC dynamic Heuristic mode only " \
117 "(ignored otherwise). Defaults to 10%.") \
118 \
119 product_rw(uintx, ShenandoahCSetThreshold, 40, \
120 "Set the approximate target percentage of the heap for the" \
121 "collection set. Defaults to 40%.") \
122 product_rw(uintx, ShenandoahAllocationThreshold, 0, \
123 "Set percentage of memory allocated since last GC cycle before " \
124 "a new GC cycle is started. " \
125 "Applies to Shenandoah GC dynamic Heuristic mode only " \
126 "(ignored otherwise). Defauls to 0%.") \
127 \
128 experimental(uintx, ShenandoahMergeUpdateRefsMinGap, 100, \
129 "If GC is currently running in separate update-refs mode " \
130 "this numbers gives the threshold when to switch to " \
131 "merged update-refs mode. Number is percentage relative to" \
132 "duration(marking)+duration(update-refs).") \
133 \
134 experimental(uintx, ShenandoahMergeUpdateRefsMaxGap, 200, \
135 "If GC is currently running in merged update-refs mode " \
136 "this numbers gives the threshold when to switch to " \
137 "separate update-refs mode. Number is percentage relative " \
138 "to duration(marking)+duration(update-refs).") \
139 \
140 experimental(double, ShenandoahGCWorkerPerJavaThread, 0.5, \
141 "Set GC worker to Java thread ratio when " \
142 "UseDynamicNumberOfGCThreads is enabled") \
143 \
144 experimental(uintx, ShenandoahInitFreeThreshold, 10, \
145 "Initial remaining free threshold for adaptive heuristics") \
146 \
147 experimental(uintx, ShenandoahMinFreeThreshold, 3, \
148 "Minimum remaining free threshold for adaptive heuristics") \
149 \
150 experimental(uintx, ShenandoahMaxFreeThreshold, 70, \
151 "Maximum remaining free threshold for adaptive heuristics") \
152 \
153 experimental(uintx, ShenandoahHappyCyclesThreshold, 5, \
154 "How many successful marking cycles before improving free " \
155 "threshold for adaptive heuristics") \
156 \
157 experimental(uint, ShenandoahMarkLoopStride, 1000, \
158 "How many items are processed during one marking step") \
159 \
|