Beispiel #1
0
void HRInto_G1RemSet::print_summary_info() {
  G1CollectedHeap* g1 = G1CollectedHeap::heap();

#if CARD_REPEAT_HISTO
  gclog_or_tty->print_cr("\nG1 card_repeat count histogram: ");
  gclog_or_tty->print_cr("  # of repeats --> # of cards with that number.");
  card_repeat_count.print_on(gclog_or_tty);
#endif

  if (FILTEROUTOFREGIONCLOSURE_DOHISTOGRAMCOUNT) {
    gclog_or_tty->print_cr("\nG1 rem-set out-of-region histogram: ");
    gclog_or_tty->print_cr("  # of CS ptrs --> # of cards with that number.");
    out_of_histo.print_on(gclog_or_tty);
  }
  gclog_or_tty->print_cr("\n Concurrent RS processed %d cards",
                         _conc_refine_cards);
  DirtyCardQueueSet& dcqs = JavaThread::dirty_card_queue_set();
  jint tot_processed_buffers =
    dcqs.processed_buffers_mut() + dcqs.processed_buffers_rs_thread();
  gclog_or_tty->print_cr("  Of %d completed buffers:", tot_processed_buffers);
  gclog_or_tty->print_cr("     %8d (%5.1f%%) by conc RS threads.",
                dcqs.processed_buffers_rs_thread(),
                100.0*(float)dcqs.processed_buffers_rs_thread()/
                (float)tot_processed_buffers);
  gclog_or_tty->print_cr("     %8d (%5.1f%%) by mutator threads.",
                dcqs.processed_buffers_mut(),
                100.0*(float)dcqs.processed_buffers_mut()/
                (float)tot_processed_buffers);
  gclog_or_tty->print_cr("  Conc RS threads times(s)");
  PrintRSThreadVTimeClosure p;
  gclog_or_tty->print("     ");
  g1->concurrent_g1_refine()->threads_do(&p);
  gclog_or_tty->print_cr("");

  if (G1UseHRIntoRS) {
    HRRSStatsIter blk;
    g1->heap_region_iterate(&blk);
    gclog_or_tty->print_cr("  Total heap region rem set sizes = " SIZE_FORMAT "K."
                           "  Max = " SIZE_FORMAT "K.",
                           blk.total_mem_sz()/K, blk.max_mem_sz()/K);
    gclog_or_tty->print_cr("  Static structures = " SIZE_FORMAT "K,"
                           " free_lists = " SIZE_FORMAT "K.",
                           HeapRegionRemSet::static_mem_size()/K,
                           HeapRegionRemSet::fl_mem_size()/K);
    gclog_or_tty->print_cr("    %d occupied cards represented.",
                           blk.occupied());
    gclog_or_tty->print_cr("    Max sz region = [" PTR_FORMAT ", " PTR_FORMAT " )"
                           ", cap = " SIZE_FORMAT "K, occ = " SIZE_FORMAT "K.",
                           blk.max_mem_sz_region()->bottom(), blk.max_mem_sz_region()->end(),
                           (blk.max_mem_sz_region()->rem_set()->mem_size() + K - 1)/K,
                           (blk.max_mem_sz_region()->rem_set()->occupied() + K - 1)/K);
    gclog_or_tty->print_cr("    Did %d coarsenings.",
                  HeapRegionRemSet::n_coarsenings());

  }
}
Beispiel #2
0
void G1RemSetSummary::print_on(outputStream* out) {
  out->print_cr("\n Concurrent RS processed "SIZE_FORMAT" cards",
                num_concurrent_refined_cards());
  out->print_cr("  Of %d completed buffers:", num_processed_buf_total());
  out->print_cr("     %8d (%5.1f%%) by concurrent RS threads.",
                num_processed_buf_total(),
                calc_percentage(num_processed_buf_rs_threads(), num_processed_buf_total()));
  out->print_cr("     %8d (%5.1f%%) by mutator threads.",
                num_processed_buf_mutator(),
                calc_percentage(num_processed_buf_mutator(), num_processed_buf_total()));
  out->print_cr("  Concurrent RS threads times (s)");
  out->print("     ");
  for (uint i = 0; i < _num_vtimes; i++) {
    out->print("    %5.2f", rs_thread_vtime(i));
  }
  out->cr();
  out->print_cr("  Concurrent sampling threads times (s)");
  out->print_cr("         %5.2f", sampling_thread_vtime());

  HRRSStatsIter blk;
  G1CollectedHeap::heap()->heap_region_iterate(&blk);
  out->print_cr("  Total heap region rem set sizes = "SIZE_FORMAT"K."
                "  Max = "SIZE_FORMAT"K.",
                blk.total_mem_sz()/K, blk.max_mem_sz()/K);
  out->print_cr("  Static structures = "SIZE_FORMAT"K,"
                " free_lists = "SIZE_FORMAT"K.",
                HeapRegionRemSet::static_mem_size() / K,
                HeapRegionRemSet::fl_mem_size() / K);
  out->print_cr("    "SIZE_FORMAT" occupied cards represented.",
                blk.occupied());
  HeapRegion* max_mem_sz_region = blk.max_mem_sz_region();
  HeapRegionRemSet* rem_set = max_mem_sz_region->rem_set();
  out->print_cr("    Max size region = "HR_FORMAT", "
                "size = "SIZE_FORMAT "K, occupied = "SIZE_FORMAT"K.",
                HR_FORMAT_PARAMS(max_mem_sz_region),
                (rem_set->mem_size() + K - 1)/K,
                (rem_set->occupied() + K - 1)/K);

  out->print_cr("    Did %d coarsenings.", num_coarsenings());
}