📄 timer.cpp
字号:
//// spectral toolkit // copyright (c) 2005 university corporation for atmospheric research// licensed under the gnu general public license//#include "timer.h"#if defined(__hpux)#include <time.h>#include <stdio.h>double spectral::timer::clock(){ double t; struct timeval buffer; struct timezone dummy; gettimeofday (&buffer, &dummy); t = (double)(buffer.tv_sec*1000000 + buffer.tv_usec); return (t);}#elif defined (__sun)#include <time.h>double spectral::timer::clock(){ struct timespec tp; clock_gettime(CLOCK_HIGHRES,&tp); double usec=1.0e-03*(double)tp.tv_nsec+1.0e+06*(double)tp.tv_sec; return(usec);}#elif defined(linux) #include <sys/time.h>double spectral::timer::clock(){ double t; struct timeval buffer; struct timezone dummy; gettimeofday (&buffer, &dummy); t = (double)(buffer.tv_sec*1000000 + buffer.tv_usec); return (t);}#elif defined(__alpha) #include <sys/time.h>double spectral::timer::clock(){ double t; struct timeval buffer; struct timezone dummy; gettimeofday (&buffer, &dummy); t = (double)(buffer.tv_sec*1000000+buffer.tv_usec); return (t);}#elif defined(__sgi) #include <time.h>double spectral::timer::clock(){ struct timespec tp; clock_gettime(CLOCK_REALTIME,&tp); double usec=1.0e-03*(double)tp.tv_nsec+1.0e+06*(double)tp.tv_sec; return(usec);}#elif defined(_AIX) #include <sys/time.h>#include <sys/systemcfg.h>double spectral::timer::clock(){ double t; timebasestruct_t T; read_real_time(&T,TIMEBASE_SZ); time_base_to_time(&T,TIMEBASE_SZ); t=(double)(T.tb_low)*1.0e-03+(double)(T.tb_high)*1.0e+6; return (t);}#elif defined(__APPLE__) #include <sys/time.h>double spectral::timer::clock(){ double t; struct timeval buffer; struct timezone dummy; gettimeofday (&buffer, &dummy); t = (double)(buffer.tv_sec*1000000 + buffer.tv_usec); return (t);}#else#include <time.h>double spectral::timer::clock(void){ clock_t t0; double c=1.0e+06/(double)CLOCKS_PER_SEC; double t; t=c*(double)clock(); return(t);}#endifspectral::timer::timer(){ clear();}spectral::timer::~timer(){}void spectral::timer::start(){ T=clock();}void spectral::timer::stop(){ T=clock()-T; Total+=T;}void spectral::timer::clear(){ Total=0.0; T=0.0;}double spectral::timer::time(){ return(Total);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -