source:
src/Common/Stats/Time.h
@
746ae82
Last change on this file since 746ae82 was c884f2d, checked in by , 6 years ago | |
---|---|
|
|
File size: 1.2 KB |
Rev | Line | |
---|---|---|
[1cb7fab2] | 1 | // |
2 | // Cforall Version 1.0.0 Copyright (C) 2019 University of Waterloo | |
3 | // | |
4 | // The contents of this file are covered under the licence agreement in the | |
5 | // file "LICENCE" distributed with Cforall. | |
6 | // | |
7 | // Time.h -- | |
8 | // | |
9 | // Author : Thierry Delisle | |
10 | // Created On : Fri Mar 01 15:14:11 2019 | |
11 | // Last Modified By : | |
12 | // Last Modified On : | |
13 | // Update Count : | |
14 | // | |
15 | ||
16 | #pragma once | |
17 | ||
18 | #include "Common/Stats/Base.h" | |
19 | ||
[4f97937] | 20 | #if defined( NO_STATISTICS ) |
21 | #define NO_TIME_STATISTICS | |
22 | #endif | |
23 | ||
[1cb7fab2] | 24 | namespace Stats { |
25 | namespace Time { | |
[4f97937] | 26 | # if defined(NO_TIME_STATISTICS) |
[79eaeb7] | 27 | inline void StartGlobal() {} |
28 | ||
[4f97937] | 29 | inline void StartBlock(const char * const) {} |
30 | inline void StopBlock() {} | |
31 | ||
32 | inline void print() {} | |
33 | ||
34 | struct BlockGuard { | |
35 | BlockGuard(const char * const) {} | |
36 | ~BlockGuard() {} | |
37 | }; | |
38 | ||
39 | template<typename func_t> | |
[c884f2d] | 40 | inline void TimeBlock(const char *, func_t f) { |
41 | f(); | |
42 | } | |
[4f97937] | 43 | # else |
[79eaeb7] | 44 | void StartGlobal(); |
45 | ||
[4f97937] | 46 | void StartBlock(const char * const name); |
47 | void StopBlock(); | |
[1cb7fab2] | 48 | |
[4f97937] | 49 | void print(); |
[1cb7fab2] | 50 | |
[4f97937] | 51 | struct BlockGuard { |
52 | BlockGuard(const char * const name ) { StartBlock(name); } | |
53 | ~BlockGuard() { StopBlock(); } | |
54 | }; | |
[1cb7fab2] | 55 | |
[4f97937] | 56 | template<typename func_t> |
[c884f2d] | 57 | inline void TimeBlock(const char * name, func_t func) { |
[4f97937] | 58 | BlockGuard guard(name); |
59 | func(); | |
60 | } | |
61 | # endif | |
[1cb7fab2] | 62 | } |
63 | } |
Note: See TracBrowser
for help on using the repository browser.