|
Teuchos Package Browser (Single Doxygen Collection)
Version of the Day
|
Scope protection wrapper for Teuchos::Time, with timer reporting functionality. More...
#include "Teuchos_PerformanceMonitorBase.hpp"#include "Teuchos_ParameterList.hpp"#include "Teuchos_Comm.hpp"#include "Teuchos_Time.hpp"#include "Teuchos_CommandLineProcessor.hpp"

Go to the source code of this file.
Classes | |
| class | Teuchos::TimeMonitor |
| A scope-safe timer wrapper class, that can compute global timer statistics. More... | |
| class | Teuchos::TimeMonitorSurrogateImpl |
| Implementation of TimeMonitorSurrogate that invokes TimeMonitor. More... | |
| class | Teuchos::TimeMonitorSurrogateImplInserter |
| Injects run-time dependency of a class on TimeMonitor. More... | |
Namespaces | |
| namespace | Teuchos |
Defines | |
| #define | TEUCHOS_TIMER(funcName, strName) |
| Defines a static non-member function that returns a time monitor. | |
| #define | TEUCHOS_FUNC_TIME_MONITOR_DIFF(FUNCNAME, DIFF) |
| Defines a timer for a specific function (with differentiator). | |
| #define | TEUCHOS_FUNC_TIME_MONITOR(FUNCNAME) TEUCHOS_FUNC_TIME_MONITOR_DIFF( FUNCNAME, main ) |
| Defines a timer for a specific function. | |
Typedefs | |
| typedef std::map< std::string, std::vector< std::pair< double, double > > > | Teuchos::stat_map_type |
| Global statistics collected from timer data. | |
Scope protection wrapper for Teuchos::Time, with timer reporting functionality.
An instance of the Teuchos::TimeMonitor class wraps a nonconst reference to a Teuchos::Time timer object. TimeMonitor's constructor starts the timer, and its destructor stops the timer. This ensures scope safety of timers, so that no matter how a scope is exited (whether the normal way or when an exception is thrown), a timer started in the scope is stopped when the scope is left.
TimeMonitor also has class methods that create or destroy timers (in such a way that it can track the complete set of created timers on each process) and compute global timer statistics.
Definition in file Teuchos_TimeMonitor.hpp.
| #define TEUCHOS_TIMER | ( | funcName, | |
| strName | |||
| ) |
static Teuchos::Time& funcName() \ {static Teuchos::RCP<Time> rtn = \ Teuchos::TimeMonitor::getNewCounter(strName); return *rtn;}
Defines a static non-member function that returns a time monitor.
Definition at line 75 of file Teuchos_TimeMonitor.hpp.
| #define TEUCHOS_FUNC_TIME_MONITOR_DIFF | ( | FUNCNAME, | |
| DIFF | |||
| ) |
static Teuchos::RCP<Teuchos::Time> DIFF ## blabla_localTimer; \ if(!DIFF ## blabla_localTimer.get()) { \ std::ostringstream oss; \ oss << FUNCNAME; \ DIFF ## blabla_localTimer = Teuchos::TimeMonitor::getNewCounter(oss.str()); \ } \ Teuchos::TimeMonitor DIFF ## blabla_localTimeMonitor(*DIFF ## blabla_localTimer)
Defines a timer for a specific function (with differentiator).
Same as TEUCHOS_FUNC_TIME_MONITOR(...) except required when used more than once in the same function (like a block of code).
Definition at line 86 of file Teuchos_TimeMonitor.hpp.
| #define TEUCHOS_FUNC_TIME_MONITOR | ( | FUNCNAME | ) | TEUCHOS_FUNC_TIME_MONITOR_DIFF( FUNCNAME, main ) |
Defines a timer for a specific function.
Note that the name of the timer can be formated with stream inserts. For example, we can define a time monitor for a function as follows:
template<typename Scalar> void foo() { TEUCHOS_FUNC_TIME_MONITOR( "foo<" << Teuchos::ScalarTraits<Scalar>::name () << ">()" ); ... }
The timer can then be printed at the end of the program using any of various class methods, including summarize():
Definition at line 118 of file Teuchos_TimeMonitor.hpp.
1.7.6.1