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
|