< prev index next >

src/hotspot/share/gc/g1/g1ServiceThread.hpp

Print this page
rev 60637 : 8252141: Rename G1YoungRemSetSamplingThread to better reflect its purpose
Reviewed-by:
rev 60638 : [mq]: 8252141-kb-rev1

*** 20,54 **** * or visit www.oracle.com if you need additional information or have any * questions. * */ ! #ifndef SHARE_GC_G1_G1YOUNGREMSETSAMPLINGTHREAD_HPP ! #define SHARE_GC_G1_G1YOUNGREMSETSAMPLINGTHREAD_HPP #include "gc/shared/concurrentGCThread.hpp" ! // The G1YoungRemSetSamplingThread is used to re-assess the validity of ! // the prediction for the remembered set lengths of the young generation. ! // ! // At the end of the GC G1 determines the length of the young gen based on ! // how much time the next GC can take, and when the next GC may occur ! // according to the MMU. ! // ! // The assumption is that a significant part of the GC is spent on scanning ! // the remembered sets (and many other components), so this thread constantly ! // reevaluates the prediction for the remembered set scanning costs, and potentially ! // G1Policy resizes the young gen. This may do a premature GC or even ! // increase the young gen size to keep pause time length goal. ! class G1YoungRemSetSamplingThread: public ConcurrentGCThread { private: Monitor _monitor; double _last_periodic_gc_attempt_s; double _vtime_accum; // Accumulated virtual time. void sample_young_list_rs_length(); void run_service(); void check_for_periodic_gc(); --- 20,57 ---- * or visit www.oracle.com if you need additional information or have any * questions. * */ ! #ifndef SHARE_GC_G1_G1SERVICETHREAD_HPP ! #define SHARE_GC_G1_G1SERVICETHREAD_HPP #include "gc/shared/concurrentGCThread.hpp" ! // The G1ServiceThread is used to periodically do a number of different tasks: ! // - re-assess the validity of the prediction for the ! // remembered set lengths of the young generation. ! // - check if a periodic GC should be scheduled. ! class G1ServiceThread: public ConcurrentGCThread { private: Monitor _monitor; double _last_periodic_gc_attempt_s; double _vtime_accum; // Accumulated virtual time. + // Sample the current length of remembered sets for young. + // + // At the end of the GC G1 determines the length of the young gen based on + // how much time the next GC can take, and when the next GC may occur + // according to the MMU. + // + // The assumption is that a significant part of the GC is spent on scanning + // the remembered sets (and many other components), so this thread constantly + // reevaluates the prediction for the remembered set scanning costs, and potentially + // G1Policy resizes the young gen. This may do a premature GC or even + // increase the young gen size to keep pause time length goal. void sample_young_list_rs_length(); void run_service(); void check_for_periodic_gc();
*** 57,66 **** void sleep_before_next_cycle(); bool should_start_periodic_gc(); public: ! G1YoungRemSetSamplingThread(); double vtime_accum() { return _vtime_accum; } }; ! #endif // SHARE_GC_G1_G1YOUNGREMSETSAMPLINGTHREAD_HPP --- 60,69 ---- void sleep_before_next_cycle(); bool should_start_periodic_gc(); public: ! G1ServiceThread(); double vtime_accum() { return _vtime_accum; } }; ! #endif // SHARE_GC_G1_G1SERVICETHREAD_HPP
< prev index next >