Sierra Toolkit  Version of the Day
CPUTime.cpp
1 /*------------------------------------------------------------------------*/
2 /* Copyright 2010 Sandia Corporation. */
3 /* Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive */
4 /* license for use of this work by or on behalf of the U.S. Government. */
5 /* Export of this program may require a license from the */
6 /* United States Government. */
7 /*------------------------------------------------------------------------*/
8 
9 #include <stk_util/environment/CPUTime.hpp>
10 
11 #include <sys/resource.h>
12 
13 namespace stk_classic {
14 
15 double
17 {
18 #if defined(REDS)
19  struct rusage my_rusage;
20 
21  ::getrusage(RUSAGE_SELF, &my_rusage);
22 
23  double seconds = my_rusage.ru_utime.tv_sec;
24  double micro_seconds = my_rusage.ru_utime.tv_usec;
25 
26  return seconds + micro_seconds*1.0e-6;
27 
28 #else
29  struct rusage my_rusage;
30 
31  ::getrusage(RUSAGE_SELF, &my_rusage);
32 
33  double seconds = my_rusage.ru_utime.tv_sec + my_rusage.ru_stime.tv_sec;
34  double micro_seconds = my_rusage.ru_utime.tv_usec + my_rusage.ru_stime.tv_usec;
35 
36  return seconds + micro_seconds*1.0e-6;
37 
38 #endif
39 }
40 
41 } // namespace stk_classic
double cpu_time()
Member function cpu_time returns the accumulated cpu time for the process as a double precision value...
Definition: CPUTime.cpp:16
Sierra Toolkit.