39DeltaTime::DeltaTime(
double a_CPU_time,
double a_wallTime,
double a_CPU_timeIncremental,
double a_wallTimeIncremental ) :
40 m_CPU_time( a_CPU_time ),
41 m_wallTime( a_wallTime ),
42 m_CPU_timeIncremental( a_CPU_timeIncremental ),
43 m_wallTimeIncremental( a_wallTimeIncremental ) {
72std::string
DeltaTime::toString( std::string a_formatIncremental, std::string a_formatTotal, std::string a_sep ) {
74 std::string deltaTimeStr;
77 if( a_formatIncremental !=
"" ) {
78 snprintf( buffer,
bufferSize, a_formatIncremental.c_str( ), m_CPU_timeIncremental, m_wallTimeIncremental );
79 deltaTimeStr += buffer;
82 if( a_formatTotal !=
"" ) {
83 if( deltaTimeStr !=
"" ) deltaTimeStr += a_sep;
84 snprintf( buffer,
bufferSize, a_formatTotal.c_str( ), m_CPU_time, m_wallTime );
85 deltaTimeStr += buffer;
88 return( deltaTimeStr );
108 struct timeval wallTime;
109 clock_t CPU_time = clock( );
110 gettimeofday( &wallTime, 0 );
112 double dWallTime =
static_cast<double>( wallTime.tv_sec - m_wallTime.tv_sec )
113 + 1e-6 *
static_cast<double>( wallTime.tv_usec - m_wallTime.tv_usec );
114 double dCPU_time = double( CPU_time - m_CPU_time ) / CLOCKS_PER_SEC;
116 double dWallTimeIncremental =
static_cast<double>( wallTime.tv_sec - m_wallTimeIncremental.tv_sec )
117 + 1e-6 *
static_cast<double>( wallTime.tv_usec - m_wallTimeIncremental.tv_usec );
118 double dCPU_timeIncremental = double( CPU_time - m_CPU_timeIncremental ) / CLOCKS_PER_SEC;
120 m_CPU_timeIncremental = CPU_time;
121 m_wallTimeIncremental = wallTime;
123 return(
DeltaTime( dCPU_time, dWallTime, dCPU_timeIncremental, dWallTimeIncremental ) );