--- old/src/hotspot/share/gc/g1/g1Analytics.cpp 2019-11-20 14:56:34.536946729 +0100 +++ new/src/hotspot/share/gc/g1/g1Analytics.cpp 2019-11-20 14:56:34.202936391 +0100 @@ -244,7 +244,7 @@ } size_t G1Analytics::predict_scan_card_num(size_t rs_length, bool for_young_gc) const { - if (for_young_gc || _mixed_card_merge_to_scan_ratio_seq->num() < 3) { + if (for_young_gc || !enough_samples_available(_mixed_card_merge_to_scan_ratio_seq)) { return (size_t) (rs_length * predict_young_card_merge_to_scan_ratio()); } else { return (size_t) (rs_length * get_new_prediction(_mixed_card_merge_to_scan_ratio_seq)); @@ -252,7 +252,7 @@ } double G1Analytics::predict_card_merge_time_ms(size_t card_num, bool for_young_gc) const { - if (for_young_gc || _mixed_cost_per_card_merge_ms_seq->num() < 3) { + if (for_young_gc || !enough_samples_available(_mixed_cost_per_card_merge_ms_seq->num())) { return card_num * get_new_prediction(_young_cost_per_card_merge_ms_seq); } else { return card_num * get_new_prediction(_mixed_cost_per_card_merge_ms_seq); @@ -260,7 +260,7 @@ } double G1Analytics::predict_card_scan_time_ms(size_t card_num, bool for_young_gc) const { - if (for_young_gc || _mixed_cost_per_card_scan_ms_seq->num() < 3) { + if (for_young_gc || !enough_samples_available(_mixed_cost_per_card_scan_ms_seq->num())) { return card_num * get_new_prediction(_young_cost_per_card_scan_ms_seq); } else { return card_num * get_new_prediction(_mixed_cost_per_card_scan_ms_seq); @@ -268,7 +268,7 @@ } double G1Analytics::predict_object_copy_time_ms_during_cm(size_t bytes_to_copy) const { - if (_cost_per_byte_ms_during_cm_seq->num() < 3) { + if (!enough_samples_available(_cost_per_byte_ms_during_cm_seq)) { return (1.1 * bytes_to_copy) * get_new_prediction(_copy_cost_per_byte_ms_seq); } else { return bytes_to_copy * get_new_prediction(_cost_per_byte_ms_during_cm_seq);