Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Spot
Spot
Commits
19c00502
Commit
19c00502
authored
May 04, 2016
by
Etienne Renault
Browse files
timer: support for walltime
* spot/misc/timer.hh: here.
parent
119eda0c
Changes
1
Hide whitespace changes
Inline
Side-by-side
spot/misc/timer.hh
View file @
19c00502
...
...
@@ -33,7 +33,7 @@
# include <sys/times.h>
#endif
#include
<ctime>
#include
<chrono>
namespace
spot
{
...
...
@@ -96,6 +96,7 @@ namespace spot
{
SPOT_ASSERT
(
!
running
);
running
=
true
;
wall_start_
=
std
::
chrono
::
high_resolution_clock
::
now
();
#ifdef SPOT_HAVE_TIMES
struct
tms
tmp
;
times
(
&
tmp
);
...
...
@@ -112,6 +113,9 @@ namespace spot
void
stop
()
{
auto
end
=
std
::
chrono
::
high_resolution_clock
::
now
();
wall_cumul_
=
std
::
chrono
::
duration_cast
<
std
::
chrono
::
milliseconds
>
(
end
-
wall_start_
).
count
();
#ifdef SPOT_HAVE_TIMES
struct
tms
tmp
;
times
(
&
tmp
);
...
...
@@ -194,10 +198,23 @@ namespace spot
return
running
;
}
/// \brief Return cumulative wall time
///
/// When using multithreading the cpu time is not
/// relevant and we have to deal with wall time to have an
/// effective timer
std
::
chrono
::
milliseconds
::
rep
walltime
()
const
{
return
wall_cumul_
;
}
protected:
time_info
start_
;
time_info
total_
;
bool
running
;
std
::
chrono
::
high_resolution_clock
::
time_point
wall_start_
;
std
::
chrono
::
milliseconds
::
rep
wall_cumul_
;
};
// This function declared here must be implemented in each file
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment