timer.cpp

来自「The Spectral Toolkit is a C++ spectral t」· C++ 代码 · 共 133 行

CPP
133
字号
//// 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 + =
减小字号Ctrl + -
显示快捷键?