#include <Profile_Timer.h>
Collaboration diagram for ACE_Profile_Timer:
Public Types | |
typedef ACE_Rusage | Rusage |
Public Member Functions | |
ACE_Profile_Timer (void) | |
Default constructor. Clears all time values to 0. | |
~ACE_Profile_Timer (void) | |
Shutdown the timer. | |
int | start (void) |
Activate the timer. | |
int | stop (void) |
Stop the timer. | |
int | elapsed_time (ACE_Elapsed_Time &et) |
Compute the time elapsed between calls to start() and stop() . | |
void | elapsed_rusage (ACE_Profile_Timer::Rusage &rusage) |
void | get_rusage (ACE_Profile_Timer::Rusage &rusage) |
Return the resource utilization (don't recompute it). | |
void | dump (void) const |
Dump the state of an object. | |
Public Attributes | |
ACE_ALLOC_HOOK_DECLARE | |
Declare the dynamic allocation hooks. | |
Private Member Functions | |
void | compute_times (ACE_Elapsed_Time &et) |
Compute how much time has elapsed. | |
Private Attributes | |
ACE_Profile_Timer::Rusage | begin_usage_ |
Keep track of the starting resource utilization. | |
ACE_Profile_Timer::Rusage | end_usage_ |
Keep track of the ending resource utilization. | |
ACE_Profile_Timer::Rusage | last_usage_ |
Keep track of the last rusage for incremental timing. | |
ACE_High_Res_Timer | timer_ |
The high resolution timer. |
Definition at line 34 of file Profile_Timer.h.
|
Definition at line 57 of file Profile_Timer.h. Referenced by elapsed_rusage(), and get_rusage(). |
|
Default constructor. Clears all time values to 0.
Definition at line 283 of file Profile_Timer.cpp. References ACE_TRACE, and ACE_OS::memset().
00284 : timer_ () 00285 { 00286 ACE_TRACE ("ACE_Profile_Timer::ACE_Profile_Timer"); 00287 # if defined (ACE_HAS_GETRUSAGE) 00288 00289 ACE_OS::memset (&this->end_usage_, 0, sizeof this->end_usage_); 00290 ACE_OS::memset (&this->begin_usage_, 0, sizeof this->begin_usage_); 00291 ACE_OS::memset (&this->last_usage_, 0, sizeof this->last_usage_); 00292 00293 ACE_OS::memset (&this->begin_time_, 0, sizeof this->begin_time_); 00294 ACE_OS::memset (&this->end_time_, 0, sizeof this->end_time_); 00295 ACE_OS::memset (&this->last_time_, 0, sizeof this->last_time_); 00296 # endif /* ACE_HAS_GETRUSAGE */ 00297 } |
|
Shutdown the timer.
Definition at line 72 of file Profile_Timer.inl.
00073 { 00074 } |
|
Compute how much time has elapsed.
|
|
Dump the state of an object.
Definition at line 274 of file Profile_Timer.cpp. References ACE_TRACE, and ACE_High_Res_Timer::dump().
|
|
Compute the amount of resource utilization between calls to Definition at line 343 of file Profile_Timer.cpp. References ACE_TRACE, and Rusage.
00344 { 00345 ACE_TRACE ("ACE_Profile_Timer::elapsed_rusage"); 00346 00347 # if defined (ACE_HAS_GETRUSAGE) 00348 // Use ACE_Time_Value's as intermediate because the type of ru_utime can 00349 // be multiple types and using the - operator is not safe when this are 00350 // 64bit FILETIMEs on Windows 00351 ACE_Time_Value end_ru_utime (this->end_usage_.ru_utime); 00352 ACE_Time_Value begin_ru_utime (this->begin_usage_.ru_utime); 00353 usage.ru_utime = end_ru_utime - begin_ru_utime; 00354 00355 ACE_Time_Value end_ru_stime (this->end_usage_.ru_stime); 00356 ACE_Time_Value begin_ru_stime (this->begin_usage_.ru_stime); 00357 usage.ru_stime = end_ru_stime - begin_ru_stime; 00358 # else /* ACE_HAS_GETRUSAGE */ 00359 usage = 0; 00360 # endif /* ACE_HAS_GETRUSAGE */ 00361 } |
|
Compute the time elapsed between calls to
Definition at line 300 of file Profile_Timer.cpp. References ACE_hrtime_t, ACE_ONE_SECOND_IN_NSECS, ACE_ONE_SECOND_IN_USECS, ACE_Time_Value, ACE_TRACE, ACE_High_Res_Timer::elapsed_time(), ACE_Profile_Timer::ACE_Elapsed_Time::real_time, ACE_Time_Value::sec(), ACE_Profile_Timer::ACE_Elapsed_Time::system_time, ACE_Time_Value::usec(), and ACE_Profile_Timer::ACE_Elapsed_Time::user_time.
00301 { 00302 ACE_TRACE ("ACE_Profile_Timer::elapsed_time"); 00303 00304 ACE_hrtime_t delta_t; // nanoseconds 00305 timer_.elapsed_time (delta_t); 00306 # if defined (ACE_LACKS_LONGLONG_T) 00307 et.real_time = delta_t / (double) ACE_ONE_SECOND_IN_NSECS; 00308 # else 00309 et.real_time = (__int64) delta_t / (double) ACE_ONE_SECOND_IN_NSECS; 00310 # endif /* ACE_LACKS_LONGLONG_T */ 00311 # if defined (ACE_HAS_GETRUSAGE) 00312 ACE_Time_Value atv = ACE_Time_Value (this->end_usage_.ru_utime) 00313 - ACE_Time_Value (this->begin_usage_.ru_utime); 00314 et.user_time = atv.sec () + ((double) atv.usec ()) / ACE_ONE_SECOND_IN_USECS; 00315 00316 atv = ACE_Time_Value (this->end_usage_.ru_stime) 00317 - ACE_Time_Value (this->begin_usage_.ru_stime); 00318 et.system_time = atv.sec () + ((double) atv.usec ()) / ACE_ONE_SECOND_IN_USECS; 00319 # else /* ACE_HAS_GETRUSAGE */ 00320 et.user_time = 0; 00321 et.system_time = 0; 00322 # endif /* ACE_HAS_GETRUSAGE */ 00323 00324 return 0; 00325 } |
|
Return the resource utilization (don't recompute it).
Definition at line 330 of file Profile_Timer.cpp. References ACE_TRACE, end_usage_, and Rusage.
00331 { 00332 ACE_TRACE ("ACE_Profile_Timer::get_rusage"); 00333 # if defined (ACE_HAS_GETRUSAGE) 00334 usage = this->end_usage_; 00335 # else /* ACE_HAS_GETRUSAGE */ 00336 usage = 0; 00337 # endif /* ACE_HAS_GETRUSAGE */ 00338 } |
|
Activate the timer.
Definition at line 77 of file Profile_Timer.inl. References ACE_TRACE, ACE_OS::getrusage(), RUSAGE_SELF, and ACE_High_Res_Timer::start().
00078 { 00079 ACE_TRACE ("ACE_Profile_Timer::start"); 00080 # if defined (ACE_HAS_GETRUSAGE) 00081 ACE_OS::getrusage (RUSAGE_SELF, 00082 &this->begin_usage_); 00083 # endif /* ACE_HAS_GETRUSAGE */ 00084 this->timer_.start (); 00085 return 0; 00086 } |
|
Stop the timer.
Definition at line 89 of file Profile_Timer.inl. References ACE_TRACE, end_usage_, ACE_OS::getrusage(), last_usage_, RUSAGE_SELF, and ACE_High_Res_Timer::stop().
00090 { 00091 ACE_TRACE ("ACE_Profile_Timer::stop"); 00092 this->timer_.stop (); 00093 # if defined (ACE_HAS_GETRUSAGE) 00094 this->last_usage_ = this->end_usage_; 00095 ACE_OS::getrusage (RUSAGE_SELF, &this->end_usage_); 00096 # endif /* ACE_HAS_GETRUSAGE */ 00097 return 0; 00098 } |
|
Declare the dynamic allocation hooks.
Definition at line 88 of file Profile_Timer.h. |
|
Keep track of the starting resource utilization.
Definition at line 95 of file Profile_Timer.h. |
|
Keep track of the ending resource utilization.
Definition at line 98 of file Profile_Timer.h. Referenced by get_rusage(), and stop(). |
|
Keep track of the last rusage for incremental timing.
Definition at line 101 of file Profile_Timer.h. Referenced by stop(). |
|
The high resolution timer.
Definition at line 128 of file Profile_Timer.h. |