< prev index next >
src/share/vm/gc/g1/workerDataArray.hpp
Print this page
*** 20,32 ****
--- 20,37 ----
* or visit www.oracle.com if you need additional information or have any
* questions.
*
*/
+ #ifndef SHARE_VM_GC_G1_WORKERDATAARRAY_HPP
+ #define SHARE_VM_GC_G1_WORKERDATAARRAY_HPP
+
#include "memory/allocation.hpp"
#include "utilities/debug.hpp"
+ class outputStream;
+
template <class T>
class WorkerDataArray : public CHeapObj<mtGC> {
T* _data;
uint _length;
const char* _title;
*** 52,69 ****
void add(uint worker_i, T value);
double average(uint active_threads) const;
T sum(uint active_threads) const;
- T minimum(uint active_threads) const;
- T maximum(uint active_threads) const;
- T diff(uint active_threads) const;
const char* title() const {
return _title;
}
void clear();
void reset() PRODUCT_RETURN;
void verify(uint active_threads) const PRODUCT_RETURN;
};
--- 57,88 ----
void add(uint worker_i, T value);
double average(uint active_threads) const;
T sum(uint active_threads) const;
const char* title() const {
return _title;
}
void clear();
void reset() PRODUCT_RETURN;
void verify(uint active_threads) const PRODUCT_RETURN;
+
+
+ private:
+ class WDAPrinter {
+ public:
+ static void summary(outputStream* out, const char* title, double min, double avg, double max, double diff, double sum, bool print_sum);
+ static void summary(outputStream* out, const char* title, size_t min, double avg, size_t max, size_t diff, size_t sum, bool print_sum);
+
+ static void details(const WorkerDataArray<double>* phase, outputStream* out, uint active_threads);
+ static void details(const WorkerDataArray<size_t>* phase, outputStream* out, uint active_threads);
+ };
+
+ public:
+ void print_summary_on(outputStream* out, uint active_threads, bool print_sum = true) const;
+ void print_details_on(outputStream* out, uint active_threads) const;
};
+
+ #endif // SHARE_VM_GC_G1_WORKERDATAARRAY_HPP
< prev index next >