897 _ihop_control->update_allocation_info(mutator_time_s, mutator_alloc_bytes, young_gen_size);
898 report = true;
899 }
900
901 if (report) {
902 report_ihop_statistics();
903 }
904 }
905
906 void G1Policy::report_ihop_statistics() {
907 _ihop_control->print();
908 }
909
910 void G1Policy::print_phases() {
911 phase_times()->print();
912 }
913
914 double G1Policy::predict_yg_surv_rate(int age, SurvRateGroup* surv_rate_group) const {
915 TruncatedSeq* seq = surv_rate_group->get_seq(age);
916 guarantee(seq->num() > 0, "There should be some young gen survivor samples available. Tried to access with age %d", age);
917 double pred = _predictor.get_new_prediction(seq);
918 if (pred > 1.0) {
919 pred = 1.0;
920 }
921 return pred;
922 }
923
924 double G1Policy::accum_yg_surv_rate_pred(int age) const {
925 return _short_lived_surv_rate_group->accum_surv_rate_pred(age);
926 }
927
928 double G1Policy::predict_base_elapsed_time_ms(size_t pending_cards,
929 size_t rs_length) const {
930 size_t effective_scanned_cards = _analytics->predict_scan_card_num(rs_length, collector_state()->in_young_only_phase());
931 return
932 _analytics->predict_card_merge_time_ms(pending_cards + rs_length, collector_state()->in_young_only_phase()) +
933 _analytics->predict_card_scan_time_ms(effective_scanned_cards, collector_state()->in_young_only_phase()) +
934 _analytics->predict_constant_other_time_ms();
935 }
936
937 double G1Policy::predict_base_elapsed_time_ms(size_t pending_cards) const {
938 size_t rs_length = _analytics->predict_rs_length();
939 return predict_base_elapsed_time_ms(pending_cards, rs_length);
940 }
941
|
897 _ihop_control->update_allocation_info(mutator_time_s, mutator_alloc_bytes, young_gen_size);
898 report = true;
899 }
900
901 if (report) {
902 report_ihop_statistics();
903 }
904 }
905
906 void G1Policy::report_ihop_statistics() {
907 _ihop_control->print();
908 }
909
910 void G1Policy::print_phases() {
911 phase_times()->print();
912 }
913
914 double G1Policy::predict_yg_surv_rate(int age, SurvRateGroup* surv_rate_group) const {
915 TruncatedSeq* seq = surv_rate_group->get_seq(age);
916 guarantee(seq->num() > 0, "There should be some young gen survivor samples available. Tried to access with age %d", age);
917 return _predictor.get_new_unit_prediction(seq);
918 }
919
920 double G1Policy::accum_yg_surv_rate_pred(int age) const {
921 return _short_lived_surv_rate_group->accum_surv_rate_pred(age);
922 }
923
924 double G1Policy::predict_base_elapsed_time_ms(size_t pending_cards,
925 size_t rs_length) const {
926 size_t effective_scanned_cards = _analytics->predict_scan_card_num(rs_length, collector_state()->in_young_only_phase());
927 return
928 _analytics->predict_card_merge_time_ms(pending_cards + rs_length, collector_state()->in_young_only_phase()) +
929 _analytics->predict_card_scan_time_ms(effective_scanned_cards, collector_state()->in_young_only_phase()) +
930 _analytics->predict_constant_other_time_ms();
931 }
932
933 double G1Policy::predict_base_elapsed_time_ms(size_t pending_cards) const {
934 size_t rs_length = _analytics->predict_rs_length();
935 return predict_base_elapsed_time_ms(pending_cards, rs_length);
936 }
937
|