< prev index next >

src/hotspot/share/gc/shared/weakProcessorPhaseTimes.cpp

Print this page
rev 59956 : 8247819: G1: Process strong OopStorage entries in parallel
Reviewed-by:
Contributed-by: Erik Osterlund <erik.osterlund@oracle.com>, Stefan Karlsson <stefan.karlsson@oracle.com>, Thomas Schatzl <thomas.schatzl@oracle.com>


  74   reset_times(_phase_times_sec, ARRAY_SIZE(_phase_times_sec));
  75   reset_items(_phase_dead_items, ARRAY_SIZE(_phase_dead_items));
  76   reset_items(_phase_total_items, ARRAY_SIZE(_phase_total_items));
  77 }
  78 
  79 WeakProcessorPhaseTimes::WeakProcessorPhaseTimes(uint max_threads) :
  80   _max_threads(max_threads),
  81   _active_workers(0),
  82   _total_time_sec(uninitialized_time),
  83   _worker_data()
  84 {
  85   assert(_max_threads > 0, "max_threads must not be zero");
  86 
  87   reset_phase_data();
  88 
  89   WorkerDataArray<double>** wpt = _worker_data;
  90   OopStorageSet::Iterator it = OopStorageSet::weak_iterator();
  91   for ( ; !it.is_end(); ++it) {
  92     assert(size_t(wpt - _worker_data) < ARRAY_SIZE(_worker_data), "invariant");
  93     const char* description = it->name();
  94     *wpt = new WorkerDataArray<double>(description, _max_threads);
  95     (*wpt)->create_thread_work_items("Dead", DeadItems);
  96     (*wpt)->create_thread_work_items("Total", TotalItems);
  97     wpt++;
  98   }
  99   assert(size_t(wpt - _worker_data) == ARRAY_SIZE(_worker_data), "invariant");
 100 }
 101 
 102 WeakProcessorPhaseTimes::~WeakProcessorPhaseTimes() {
 103   for (size_t i = 0; i < ARRAY_SIZE(_worker_data); ++i) {
 104     delete _worker_data[i];
 105   }
 106 }
 107 
 108 uint WeakProcessorPhaseTimes::max_threads() const { return _max_threads; }
 109 
 110 uint WeakProcessorPhaseTimes::active_workers() const {
 111   assert(_active_workers != 0, "active workers not set");
 112   return _active_workers;
 113 }
 114 




  74   reset_times(_phase_times_sec, ARRAY_SIZE(_phase_times_sec));
  75   reset_items(_phase_dead_items, ARRAY_SIZE(_phase_dead_items));
  76   reset_items(_phase_total_items, ARRAY_SIZE(_phase_total_items));
  77 }
  78 
  79 WeakProcessorPhaseTimes::WeakProcessorPhaseTimes(uint max_threads) :
  80   _max_threads(max_threads),
  81   _active_workers(0),
  82   _total_time_sec(uninitialized_time),
  83   _worker_data()
  84 {
  85   assert(_max_threads > 0, "max_threads must not be zero");
  86 
  87   reset_phase_data();
  88 
  89   WorkerDataArray<double>** wpt = _worker_data;
  90   OopStorageSet::Iterator it = OopStorageSet::weak_iterator();
  91   for ( ; !it.is_end(); ++it) {
  92     assert(size_t(wpt - _worker_data) < ARRAY_SIZE(_worker_data), "invariant");
  93     const char* description = it->name();
  94     *wpt = new WorkerDataArray<double>(NULL, description, _max_threads);
  95     (*wpt)->create_thread_work_items("Dead", DeadItems);
  96     (*wpt)->create_thread_work_items("Total", TotalItems);
  97     wpt++;
  98   }
  99   assert(size_t(wpt - _worker_data) == ARRAY_SIZE(_worker_data), "invariant");
 100 }
 101 
 102 WeakProcessorPhaseTimes::~WeakProcessorPhaseTimes() {
 103   for (size_t i = 0; i < ARRAY_SIZE(_worker_data); ++i) {
 104     delete _worker_data[i];
 105   }
 106 }
 107 
 108 uint WeakProcessorPhaseTimes::max_threads() const { return _max_threads; }
 109 
 110 uint WeakProcessorPhaseTimes::active_workers() const {
 111   assert(_active_workers != 0, "active workers not set");
 112   return _active_workers;
 113 }
 114 


< prev index next >