comparison src/share/vm/runtime/timer.cpp @ 4731:1f114331df92

8023730: new hotspot build - hs24-b57 Reviewed-by: jcoomes
author amurillo
date Mon, 26 Aug 2013 12:06:09 -0700
parents 8e478700068f
children
comparison
equal deleted inserted replaced
5:18c02c84038c 6:a82cdcf44b7d
37 #endif 37 #endif
38 #ifdef TARGET_OS_FAMILY_bsd 38 #ifdef TARGET_OS_FAMILY_bsd
39 # include "os_bsd.inline.hpp" 39 # include "os_bsd.inline.hpp"
40 #endif 40 #endif
41 41
42 double TimeHelper::counter_to_seconds(jlong counter) {
43 double count = (double) counter;
44 double freq = (double) os::elapsed_frequency();
45 return counter/freq;
46 }
42 47
43 void elapsedTimer::add(elapsedTimer t) { 48 void elapsedTimer::add(elapsedTimer t) {
44 _counter += t._counter; 49 _counter += t._counter;
45 } 50 }
46 51
57 _active = false; 62 _active = false;
58 } 63 }
59 } 64 }
60 65
61 double elapsedTimer::seconds() const { 66 double elapsedTimer::seconds() const {
62 double count = (double) _counter; 67 return TimeHelper::counter_to_seconds(_counter);
63 double freq = (double) os::elapsed_frequency();
64 return count/freq;
65 } 68 }
66 69
67 jlong elapsedTimer::milliseconds() const { 70 jlong elapsedTimer::milliseconds() const {
68 jlong ticks_per_ms = os::elapsed_frequency() / 1000; 71 jlong ticks_per_ms = os::elapsed_frequency() / 1000;
69 return _counter / ticks_per_ms; 72 return _counter / ticks_per_ms;
88 } 91 }
89 92
90 double TimeStamp::seconds() const { 93 double TimeStamp::seconds() const {
91 assert(is_updated(), "must not be clear"); 94 assert(is_updated(), "must not be clear");
92 jlong new_count = os::elapsed_counter(); 95 jlong new_count = os::elapsed_counter();
93 double count = (double) new_count - _counter; 96 return TimeHelper::counter_to_seconds(new_count - _counter);
94 double freq = (double) os::elapsed_frequency();
95 return count/freq;
96 } 97 }
97 98
98 jlong TimeStamp::milliseconds() const { 99 jlong TimeStamp::milliseconds() const {
99 assert(is_updated(), "must not be clear"); 100 assert(is_updated(), "must not be clear");
100 101
108 assert(is_updated(), "must not be clear"); 109 assert(is_updated(), "must not be clear");
109 return os::elapsed_counter() - _counter; 110 return os::elapsed_counter() - _counter;
110 } 111 }
111 112
112 TraceTime::TraceTime(const char* title, 113 TraceTime::TraceTime(const char* title,
113 bool doit, 114 bool doit) {
114 bool print_cr,
115 outputStream* logfile) {
116 _active = doit; 115 _active = doit;
117 _verbose = true; 116 _verbose = true;
118 _print_cr = print_cr;
119 _logfile = (logfile != NULL) ? logfile : tty;
120 117
121 if (_active) { 118 if (_active) {
122 _accum = NULL; 119 _accum = NULL;
123 _logfile->stamp(PrintGCTimeStamps); 120 tty->stamp(PrintGCTimeStamps);
124 _logfile->print("[%s", title); 121 tty->print("[%s", title);
125 _logfile->flush(); 122 tty->flush();
126 _t.start(); 123 _t.start();
127 } 124 }
128 } 125 }
129 126
130 TraceTime::TraceTime(const char* title, 127 TraceTime::TraceTime(const char* title,
131 elapsedTimer* accumulator, 128 elapsedTimer* accumulator,
132 bool doit, 129 bool doit,
133 bool verbose, 130 bool verbose) {
134 outputStream* logfile) {
135 _active = doit; 131 _active = doit;
136 _verbose = verbose; 132 _verbose = verbose;
137 _print_cr = true;
138 _logfile = (logfile != NULL) ? logfile : tty;
139 if (_active) { 133 if (_active) {
140 if (_verbose) { 134 if (_verbose) {
141 _logfile->stamp(PrintGCTimeStamps); 135 tty->stamp(PrintGCTimeStamps);
142 _logfile->print("[%s", title); 136 tty->print("[%s", title);
143 _logfile->flush(); 137 tty->flush();
144 } 138 }
145 _accum = accumulator; 139 _accum = accumulator;
146 _t.start(); 140 _t.start();
147 } 141 }
148 } 142 }
150 TraceTime::~TraceTime() { 144 TraceTime::~TraceTime() {
151 if (_active) { 145 if (_active) {
152 _t.stop(); 146 _t.stop();
153 if (_accum!=NULL) _accum->add(_t); 147 if (_accum!=NULL) _accum->add(_t);
154 if (_verbose) { 148 if (_verbose) {
155 if (_print_cr) { 149 tty->print_cr(", %3.7f secs]", _t.seconds());
156 _logfile->print_cr(", %3.7f secs]", _t.seconds()); 150 tty->flush();
157 } else {
158 _logfile->print(", %3.7f secs]", _t.seconds());
159 }
160 _logfile->flush();
161 } 151 }
162 } 152 }
163 } 153 }
164 154
165 TraceCPUTime::TraceCPUTime(bool doit, 155 TraceCPUTime::TraceCPUTime(bool doit,