|
cgma
|
#include <CpuTimer.hpp>
Public Member Functions | |
| CpuTimer () | |
| double | cpu_secs () |
| double | clock_secs () |
| double | elapsed (bool wall_time=false) |
Private Attributes | |
| time_t | cpu |
| time_t | cpuInitial |
| timeval | wallTimeInitial |
| timeval | wallTime |
Definition at line 14 of file CpuTimer.hpp.
Definition at line 46 of file CpuTimer.cpp.
{
tms current;
// Added by Cat for WIN32 port
#ifdef _WIN32
nt_times(¤t);
wallTimeInitial = clock();
wallTime = wallTimeInitial;
#else
gettimeofday(&wallTimeInitial, NULL);
wallTime = wallTimeInitial;
times( ¤t );
#endif
// Store current value of cpu time
cpu = current.tms_utime +
current.tms_stime +
current.tms_cutime +
current.tms_cstime;
cpuInitial = cpu;
}
| double CpuTimer::clock_secs | ( | ) |
Definition at line 97 of file CpuTimer.cpp.
{
double elapsed_time;
#ifdef _WIN32
clock_t current;
current = clock();
elapsed_time = double( current - wallTime );
elapsed_time = elapsed_time / HZ;
wallTime = current;
#else
timeval current;
gettimeofday( ¤t, NULL );
double prev_time = wallTime.tv_sec;
prev_time += double( wallTime.tv_usec ) / 1000000.0;
elapsed_time = current.tv_sec;
elapsed_time += double( current.tv_usec ) / 1000000.0;
elapsed_time = elapsed_time - prev_time;
wallTime = current;
#endif
return elapsed_time;
}
| double CpuTimer::cpu_secs | ( | ) |
Definition at line 72 of file CpuTimer.cpp.
{
tms current;
// Added by Cat for WIN32 port
#ifdef _WIN32
nt_times(¤t);
#else
times( ¤t );
#endif
time_t cpu_now = current.tms_utime +
current.tms_stime +
current.tms_cutime +
current.tms_cstime;
time_t delta = cpu_now - cpu;
cpu = cpu_now;
#ifdef _WIN32
if( delta == 0 )
delta = 1;
#endif
return (double) delta / HZ;
}
| double CpuTimer::elapsed | ( | bool | wall_time = false | ) |
Definition at line 124 of file CpuTimer.cpp.
{
if( wall_time )
{
double elapsed;
#ifdef _WIN32
clock_t current;
current = clock();
elapsed = double( current - wallTimeInitial);
elapsed = elapsed / HZ;
#else
double current_time;
timeval current;
gettimeofday( ¤t, NULL );
double initial_time;
initial_time = wallTimeInitial.tv_sec;
initial_time += double(wallTimeInitial.tv_usec) / 1000000.0;
current_time = current.tv_sec;
current_time += double( current.tv_usec ) / 1000000.0;
elapsed = current_time - initial_time;
#endif
return elapsed;
}
else
{
tms current;
// Added by Cat for WIN32 port
#ifdef _WIN32
nt_times(¤t);
#else
times( ¤t );
#endif
// Store totals
time_t cpu_now = current.tms_utime +
current.tms_stime +
current.tms_cutime +
current.tms_cstime;
time_t elapsed = cpu_now - cpuInitial;
return (double) elapsed / HZ;
}
}
time_t CpuTimer::cpu [private] |
Definition at line 25 of file CpuTimer.hpp.
time_t CpuTimer::cpuInitial [private] |
Definition at line 27 of file CpuTimer.hpp.
timeval CpuTimer::wallTime [private] |
Definition at line 37 of file CpuTimer.hpp.
timeval CpuTimer::wallTimeInitial [private] |
Definition at line 36 of file CpuTimer.hpp.