Path: blob/devel/elmergrid/src/metis-5.1.0/GKlib/timers.c
3206 views
/*!1\file timers.c2\brief Various timing functions34\date Started 4/12/20075\author George6\version\verbatim $Id: timers.c 10711 2011-08-31 22:23:04Z karypis $ \endverbatim7*/8910#include <GKlib.h>1112#ifdef __GNUC__13# include <sys/time.h>14#endif15161718/*************************************************************************19* This function returns the CPU seconds20**************************************************************************/21double gk_WClockSeconds(void)22{23#ifdef __GNUC__2425struct timeval ctime;2627gettimeofday(&ctime, NULL);2829return (double)ctime.tv_sec + (double).000001*ctime.tv_usec;30#else31return (double)time(NULL);32#endif33}343536/*************************************************************************37* This function returns the CPU seconds38**************************************************************************/39double gk_CPUSeconds(void)40{41//#ifdef __OPENMP__42#ifdef __OPENMPXXXX__43return omp_get_wtime();44#else45#if defined(WIN32) || defined(__MINGW32__)46return((double) clock()/CLOCKS_PER_SEC);47#else48struct rusage r;4950getrusage(RUSAGE_SELF, &r);51return ((r.ru_utime.tv_sec + r.ru_stime.tv_sec) + 1.0e-6*(r.ru_utime.tv_usec + r.ru_stime.tv_usec));52#endif53#endif54}55565758