Ipopt 3.12.10

- Main Page
- Classes
- Files

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
IpTimedTask.hpp
Go to the documentation of this file.
1 // Copyright (C) 2006, 2009 International Business Machines and others.
2 // All Rights Reserved.
3 // This code is published under the Eclipse Public License.
4 //
5 // $Id: IpTimedTask.hpp 1861 2010-12-21 21:34:47Z andreasw $
6 //
7 // Authors: Andreas Waechter IBM 2005-09-19
8
9 #ifndef __IPTIMEDTASK_HPP__
10 #define __IPTIMEDTASK_HPP__
11
12 #include "IpUtils.hpp"
13
14 namespace Ipopt
15 {
18 class TimedTask
19 {
20 public:
24 TimedTask()
25 :
26 total_cputime_(0.),
27 total_systime_(0.),
28 total_walltime_(0.),
29 start_called_(false),
30 end_called_(true)
31 {}
32
34 ~TimedTask()
35 {}
37
39 void Reset()
40 {
41 total_cputime_ = 0.;
42 total_systime_ = 0.;
43 total_walltime_ = 0.;
44 start_called_ = false;
45 end_called_ = true;
46 }
47
49 void Start()
50 {
51 DBG_ASSERT(end_called_);
52 DBG_ASSERT(!start_called_);
53 end_called_ = false;
54 start_called_ = true;
55 start_cputime_ = CpuTime();
56 start_systime_ = SysTime();
57 start_walltime_ = WallclockTime();
58 }
59
61 void End()
62 {
63 DBG_ASSERT(!end_called_);
64 DBG_ASSERT(start_called_);
65 end_called_ = true;
66 start_called_ = false;
67 total_cputime_ += CpuTime() - start_cputime_;
68 total_systime_ += SysTime() - start_systime_;
69 total_walltime_ += WallclockTime() - start_walltime_;
70 }
71
76 void EndIfStarted()
77 {
78 if (start_called_) {
79 end_called_ = true;
80 start_called_ = false;
81 total_cputime_ += CpuTime() - start_cputime_;
82 total_systime_ += SysTime() - start_systime_;
83 total_walltime_ += WallclockTime() - start_walltime_;
84 }
85 DBG_ASSERT(end_called_);
86 }
87
89 Number TotalCpuTime() const
90 {
91 DBG_ASSERT(end_called_);
92 return total_cputime_;
93 }
94
96 Number TotalSysTime() const
97 {
98 DBG_ASSERT(end_called_);
99 return total_systime_;
100 }
101
103 Number TotalWallclockTime() const
104 {
105 DBG_ASSERT(end_called_);
106 return total_walltime_;
107 }
108
109 private:
118 TimedTask(const TimedTask&);
119
121 void operator=(const TimedTask&);
123
125 Number start_cputime_;
127 Number total_cputime_;
129 Number start_systime_;
131 Number total_systime_;
133 Number start_walltime_;
135 Number total_walltime_;
136
139 bool start_called_;
140 bool end_called_;
142
143 };
144 } // namespace Ipopt
145
146 #endif
Ipopt::TimedTask::total_walltime_
Number total_walltime_
Total wall clock time for task measured so far.
Definition: IpTimedTask.hpp:135
Ipopt::TimedTask::TotalWallclockTime
Number TotalWallclockTime() const
Method returning total wall clock time spend for task so far.
Definition: IpTimedTask.hpp:103
Ipopt::TimedTask::TimedTask
TimedTask()
Default constructor.
Definition: IpTimedTask.hpp:24
IpUtils.hpp
Ipopt::TimedTask::end_called_
bool end_called_
Definition: IpTimedTask.hpp:140
Ipopt::TimedTask::TotalCpuTime
Number TotalCpuTime() const
Method returning total CPU time spend for task so far.
Definition: IpTimedTask.hpp:89
Ipopt::TimedTask
This class is used to collect timing information for a particular task.
Definition: IpTimedTask.hpp:18
Ipopt::Number
double Number
Type of all numbers.
Definition: IpTypes.hpp:17
Ipopt::TimedTask::total_cputime_
Number total_cputime_
Total CPU time for task measured so far.
Definition: IpTimedTask.hpp:127
Ipopt::TimedTask::start_called_
bool start_called_
Definition: IpTimedTask.hpp:139
Ipopt::TimedTask::start_cputime_
Number start_cputime_
CPU time at beginning of task.
Definition: IpTimedTask.hpp:125
Ipopt::TimedTask::total_systime_
Number total_systime_
Total system time for task measured so far.
Definition: IpTimedTask.hpp:131
Ipopt::WallclockTime
Number WallclockTime()
method determining wallclock time since first call
Ipopt::TimedTask::Reset
void Reset()
Method for resetting time to zero.
Definition: IpTimedTask.hpp:39
Ipopt::TimedTask::End
void End()
Method that is called after execution of the task.
Definition: IpTimedTask.hpp:61
Ipopt::CpuTime
Number CpuTime()
method determining CPU time
Ipopt::TimedTask::start_walltime_
Number start_walltime_
Wall clock time at beginning of task.
Definition: IpTimedTask.hpp:133
Ipopt::TimedTask::~TimedTask
~TimedTask()
Default destructor.
Definition: IpTimedTask.hpp:34
Ipopt::SysTime
Number SysTime()
method determining system time
DBG_ASSERT
#define DBG_ASSERT(test)
Definition: IpDebug.hpp:38
Ipopt::TimedTask::TotalSysTime
Number TotalSysTime() const
Method returning total system time spend for task so far.
Definition: IpTimedTask.hpp:96
Ipopt::TimedTask::operator=
void operator=(const TimedTask &)
Overloaded Equals Operator.
Ipopt::TimedTask::start_systime_
Number start_systime_
System time at beginning of task.
Definition: IpTimedTask.hpp:129
Ipopt::TimedTask::EndIfStarted
void EndIfStarted()
Method that is called after execution of the task for which timing might have been started...
Definition: IpTimedTask.hpp:76
Ipopt::TimedTask::Start
void Start()
Method that is called before execution of the task.
Definition: IpTimedTask.hpp:49