39 TotalItems
40 };
41 uint _max_threads;
42 uint _active_workers;
43
44 // Total time for weak processor.
45 double _total_time_sec;
46
47 // Total time and associated items for each serially processed phase.
48 static const uint phase_data_count = WeakProcessorPhases::serial_phase_count;
49 // +1 because serial_phase_count == 0 in some build configurations.
50 // Simpler to always allocate extra space than conditionalize.
51 double _phase_times_sec[phase_data_count + 1];
52 size_t _phase_dead_items[phase_data_count + 1];
53 size_t _phase_total_items[phase_data_count + 1];
54 void reset_phase_data();
55
56 // Per-worker times and linked items.
57 static const uint worker_data_count = WeakProcessorPhases::oopstorage_phase_count;
58 WorkerDataArray<double>* _worker_data[worker_data_count];
59 WorkerDataArray<size_t>* _worker_dead_items[worker_data_count];
60 WorkerDataArray<size_t>* _worker_total_items[worker_data_count];
61
62 WorkerDataArray<double>* worker_data(WeakProcessorPhase phase) const;
63
64 void log_st_phase(WeakProcessorPhase phase, uint indent) const;
65 void log_mt_phase_summary(WeakProcessorPhase phase, uint indent) const;
66 template <typename T>
67 void log_mt_phase_details(WorkerDataArray<T>* data, uint indent) const;
68
69 public:
70 WeakProcessorPhaseTimes(uint max_threads);
71 ~WeakProcessorPhaseTimes();
72
73 uint max_threads() const;
74 uint active_workers() const;
75 void set_active_workers(uint n);
76
77 double total_time_sec() const;
78 double phase_time_sec(WeakProcessorPhase phase) const;
79 double worker_time_sec(uint worker_id, WeakProcessorPhase phase) const;
80
|
39 TotalItems
40 };
41 uint _max_threads;
42 uint _active_workers;
43
44 // Total time for weak processor.
45 double _total_time_sec;
46
47 // Total time and associated items for each serially processed phase.
48 static const uint phase_data_count = WeakProcessorPhases::serial_phase_count;
49 // +1 because serial_phase_count == 0 in some build configurations.
50 // Simpler to always allocate extra space than conditionalize.
51 double _phase_times_sec[phase_data_count + 1];
52 size_t _phase_dead_items[phase_data_count + 1];
53 size_t _phase_total_items[phase_data_count + 1];
54 void reset_phase_data();
55
56 // Per-worker times and linked items.
57 static const uint worker_data_count = WeakProcessorPhases::oopstorage_phase_count;
58 WorkerDataArray<double>* _worker_data[worker_data_count];
59
60 WorkerDataArray<double>* worker_data(WeakProcessorPhase phase) const;
61
62 void log_st_phase(WeakProcessorPhase phase, uint indent) const;
63 void log_mt_phase_summary(WeakProcessorPhase phase, uint indent) const;
64 template <typename T>
65 void log_mt_phase_details(WorkerDataArray<T>* data, uint indent) const;
66
67 public:
68 WeakProcessorPhaseTimes(uint max_threads);
69 ~WeakProcessorPhaseTimes();
70
71 uint max_threads() const;
72 uint active_workers() const;
73 void set_active_workers(uint n);
74
75 double total_time_sec() const;
76 double phase_time_sec(WeakProcessorPhase phase) const;
77 double worker_time_sec(uint worker_id, WeakProcessorPhase phase) const;
78
|