src/share/vm/gc_implementation/shared/adaptiveSizePolicy.hpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/vm/gc_implementation/shared/adaptiveSizePolicy.hpp Wed Jan 15 01:41:30 2014
--- new/src/share/vm/gc_implementation/shared/adaptiveSizePolicy.hpp Wed Jan 15 01:41:30 2014
*** 72,105 ****
--- 72,105 ----
decrease_old_gen_for_footprint_true = 7,
decide_at_full_gc_true = 8
};
// Goal for the fraction of the total time during which application
- // threads run.
const double _throughput_goal;
// Last calculated sizes, in bytes, and aligned
size_t _eden_size; // calculated eden free space in bytes
size_t _promo_size; // calculated cms gen free space in bytes
size_t _survivor_size; // calculated survivor size in bytes
! // This is a hint for the heap: we've detected that gc times
! // This is a hint for the heap: we've detected that GC times
// are taking longer than GCTimeLimit allows.
bool _gc_overhead_limit_exceeded;
// Use for diagnostics only. If UseGCOverheadLimit is false,
// this variable is still set.
bool _print_gc_overhead_limit_would_be_exceeded;
// Count of consecutive GC that have exceeded the
- // GC time limit criterion.
uint _gc_overhead_limit_count;
// This flag signals that GCTimeLimit is being exceeded
! // but may not have done so for the required number of consequetive
- // collections.
! // but may not have done so for the required number of consecutive
! // collections
// Minor collection timers used to determine both
- // pause and interval times for collections.
static elapsedTimer _minor_timer;
// Major collection timers, used to determine both
// pause and interval times for collections
static elapsedTimer _major_timer;
*** 118,128 ****
--- 118,128 ----
AdaptiveWeightedAverage* _avg_old_live;
// Statistics for survivor space calculation for young generation
AdaptivePaddedAverage* _avg_survived;
- // Objects that have been directly allocated in the old generation.
AdaptivePaddedNoZeroDevAverage* _avg_pretenured;
// Variable for estimating the major and minor pause times.
// These variables represent linear least-squares fits of
// the data.
*** 140,176 ****
--- 140,176 ----
// These record the most recent collection times. They
// are available as an alternative to using the averages
// for making ergonomic decisions.
double _latest_minor_mutator_interval_seconds;
! // Allowed difference between major and minor gc times, used
- // for computing tenuring_threshold.
! // Allowed difference between major and minor GC times, used
! // for computing tenuring_threshold
const double _threshold_tolerance_percent;
! const double _gc_pause_goal_sec; // goal for maximum gc pause
! const double _gc_pause_goal_sec; // Goal for maximum GC pause
// Flag indicating that the adaptive policy is ready to use
bool _young_gen_policy_is_ready;
! // decrease/increase the young generation for minor pause time
! // Decrease/increase the young generation for minor pause time
int _change_young_gen_for_min_pauses;
! // decrease/increase the old generation for major pause time
! // Decrease/increase the old generation for major pause time
int _change_old_gen_for_maj_pauses;
! // change old geneneration for throughput
! // change old generation for throughput
int _change_old_gen_for_throughput;
// change young generation for throughput
int _change_young_gen_for_throughput;
// Flag indicating that the policy would
! // increase the tenuring threshold because of the total major gc cost
! // is greater than the total minor gc cost
! // increase the tenuring threshold because of the total major GC cost
! // is greater than the total minor GC cost
bool _increment_tenuring_threshold_for_gc_cost;
! // decrease the tenuring threshold because of the the total minor gc
! // cost is greater than the total major gc cost
! // decrease the tenuring threshold because of the the total minor GC
! // cost is greater than the total major GC cost
bool _decrement_tenuring_threshold_for_gc_cost;
// decrease due to survivor size limit
bool _decrement_tenuring_threshold_for_survivor_limit;
// decrease generation sizes for footprint
*** 180,190 ****
--- 180,190 ----
int _decide_at_full_gc;
// Changing the generation sizing depends on the data that is
// gathered about the effects of changes on the pause times and
// throughput. These variable count the number of data points
! // gathered. The policy may use these counters as a threshhold
! // gathered. The policy may use these counters as a threshold
// for reliable data.
julong _young_gen_change_for_minor_throughput;
julong _old_gen_change_for_major_throughput;
static const uint GCWorkersPerJavaThread = 2;
*** 223,233 ****
--- 223,233 ----
// Because we're dealing with averages, gc_cost() can be
// larger than 1.0 if just the sum of the minor cost the
// the major cost is used. Worse than that is the
// fact that the minor cost and the major cost each
! // tend toward 1.0 in the extreme of high gc costs.
! // tend toward 1.0 in the extreme of high GC costs.
// Limit the value of gc_cost to 1.0 so that the mutator
// cost stays non-negative.
virtual double gc_cost() const {
double result = MIN2(1.0, minor_gc_cost() + major_gc_cost());
assert(result >= 0.0, "Both minor and major costs are non-negative");
*** 236,262 ****
--- 236,262 ----
// Elapsed time since the last major collection.
virtual double time_since_major_gc() const;
// Average interval between major collections to be used
! // in calculating the decaying major gc cost. An overestimate
! // in calculating the decaying major GC cost. An overestimate
// of this time would be a conservative estimate because
// this time is used to decide if the major GC cost
// should be decayed (i.e., if the time since the last
! // major gc is long compared to the time returned here,
! // major GC is long compared to the time returned here,
// then the major GC cost will be decayed). See the
// implementations for the specifics.
virtual double major_gc_interval_average_for_decay() const {
return _avg_major_interval->average();
}
! // Return the cost of the GC where the major gc cost
! // Return the cost of the GC where the major GC cost
// has been decayed based on the time since the last
// major collection.
double decaying_gc_cost() const;
! // Decay the major gc cost. Use this only for decisions on
! // Decay the major GC cost. Use this only for decisions on
// whether to adjust, not to determine by how much to adjust.
// This approximation is crude and may not be good enough for the
// latter.
double decaying_major_gc_cost() const;
src/share/vm/gc_implementation/shared/adaptiveSizePolicy.hpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File