cpuTime.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration | Website: https://openfoam.org
5  \\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
11  OpenFOAM is free software: you can redistribute it and/or modify it
12  under the terms of the GNU General Public License as published by
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
16  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19  for more details.
20 
21  You should have received a copy of the GNU General Public License
22  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
23 
24 Class
25  Foam::cpuTime
26 
27 Description
28  Starts timing CPU usage and return elapsed time from start.
29 
30  Uses the POSIX clock() function which return the processor time consumed
31  in clock ticks @ CLOCKS_PER_SEC clock ticks per second.
32 
33 See also
34  clockTime
35 
36 SourceFiles
37  cpuTime.C
38 
39 \*---------------------------------------------------------------------------*/
40 
41 #ifndef cpuTime_H
42 #define cpuTime_H
43 
44 #include <time.h>
45 
46 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
47 
48 namespace Foam
49 {
50 
51 /*---------------------------------------------------------------------------*\
52  Class cpuTime Declaration
53 \*---------------------------------------------------------------------------*/
54 
55 class cpuTime
56 {
57  // Private Data
58 
59  //- Start CPU clock tick count
60  clock_t startTime_;
61 
62  //- Previous CPU clock tick count
63  mutable clock_t prevTime_;
64 
65  //- Current CPU clock tick count
66  mutable clock_t curTime_;
67 
68 
69  // Private Member Functions
70 
71  //- Return the difference between two times clock tick counts
72  // as elapsed CPU time (in seconds)
73  inline double timeDifference
74  (
75  const clock_t prev,
76  const clock_t cur
77  ) const;
78 
79 
80 public:
81 
82  // Constructors
83 
84  //- Construct with the current clock time
85  cpuTime();
86 
87 
88  // Member Functions
89 
90  //- Return CPU time (in seconds) from the start
91  double elapsedCpuTime() const;
92 
93  //- Return CPU time (in seconds) since last call to cpuTimeIncrement()
94  double cpuTimeIncrement() const;
95 };
96 
97 
98 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
99 
100 } // End namespace Foam
101 
102 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
103 
104 #endif
105 
106 // ************************************************************************* //
Starts timing CPU usage and return elapsed time from start.
Definition: cpuTime.H:55
cpuTime()
Construct with the current clock time.
Definition: cpuTime.C:42
double cpuTimeIncrement() const
Return CPU time (in seconds) since last call to cpuTimeIncrement()
Definition: cpuTime.C:60
double elapsedCpuTime() const
Return CPU time (in seconds) from the start.
Definition: cpuTime.C:53
Namespace for OpenFOAM.