42 #ifndef TEUCHOS_TIMEMONITOR_HPP
43 #define TEUCHOS_TIMEMONITOR_HPP
78 #define TEUCHOS_TIMER(funcName, strName) \
79 static Teuchos::Time& funcName() \
80 {static Teuchos::RCP<Time> rtn = \
81 Teuchos::TimeMonitor::getNewCounter(strName); return *rtn;}
92 #define TEUCHOS_FUNC_TIME_MONITOR_DIFF( FUNCNAME, DIFF ) \
93 static Teuchos::RCP<Teuchos::Time> DIFF ## blabla_localTimer; \
94 if(!DIFF ## blabla_localTimer.get()) { \
95 std::ostringstream oss; \
97 DIFF ## blabla_localTimer = Teuchos::TimeMonitor::getNewCounter(oss.str()); \
99 Teuchos::TimeMonitor DIFF ## blabla_localTimeMonitor(*DIFF ## blabla_localTimer)
124 #define TEUCHOS_FUNC_TIME_MONITOR( FUNCNAME ) \
125 TEUCHOS_FUNC_TIME_MONITOR_DIFF( FUNCNAME, main )
144 typedef std::map<std::string, std::vector<std::pair<double, double> > >
stat_map_type;
208 return getNewCounter (name);
226 static void disableTimer (
const std::string& name);
236 static void enableTimer (
const std::string& name);
244 static void zeroOutTimers();
361 std::vector<std::string>& statNames,
364 const std::string& filter=
"");
396 std::vector<std::string>& statNames,
398 const std::string& filter=
"");
468 std::ostream &out=std::cout,
469 const bool alwaysWriteLocal=
false,
470 const bool writeGlobalStats=
true,
471 const bool writeZeroTimers=
true,
473 const std::string& filter=
"",
474 const bool ignoreZeroTimers=
false);
493 summarize (std::ostream& out=std::cout,
494 const bool alwaysWriteLocal=
false,
495 const bool writeGlobalStats=
true,
496 const bool writeZeroTimers=
true,
498 const std::string& filter=
"",
499 const bool ignoreZeroTimers=
false);
582 const std::string& filter,
599 report (std::ostream& out,
600 const std::string& filter,
608 report (std::ostream& out,
658 const ETimeMonitorYamlFormat yamlStyle,
659 const std::string& filter=
"");
666 summarizeToYaml (std::ostream& out,
667 const ETimeMonitorYamlFormat yamlStyle,
668 const std::string& filter=
"");
820 #endif // TEUCHOS_TIMEMONITOR_H
static bool alwaysWriteLocal_
Whether report() should always report Proc 0's local timer results.
static bool writeGlobalStats_
static ETimeMonitorYamlFormat yamlStyle_
std::map< std::string, std::vector< std::pair< double, double > > > stat_map_type
Global statistics collected from timer data.
virtual void summarize(std::ostream &out)
Summarize timings over all process(es) to the given output stream.
static ECounterSetOp setOp_
Whether report() should use the intersection or union of timers over processes.
bool is_null(const std::shared_ptr< T > &p)
Returns true if p.get()==NULL.
Basic wall-clock timer class.
static bool writeZeroTimers_
Whether report() should report timers with zero call counts.
Implementation of TimeMonitorSurrogate that invokes TimeMonitor.
static RCP< Time > getNewTimer(const std::string &name)
Return a new timer with the given name (class method).
static Teuchos::RCP< Teuchos::StackedTimer > stackedTimer_
Stacked timer for optional injetion of timing from TimeMontior enabled objects.
static void setTimeMonitorSurrogate(const RCP< TimeMonitorSurrogate > &timeMonitorSurrogate)
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
Deprecated.
Templated Parameter List class.
static void summarize(Ptr< const Comm< int > > comm, std::ostream &out=std::cout, const bool alwaysWriteLocal=false, const bool writeGlobalStats=true, const bool writeZeroTimers=true, const ECounterSetOp setOp=Intersection, const std::string &filter="", const bool ignoreZeroTimers=false)
Print summary statistics for all timers on the given communicator.
Interface by which CommandLineProcessor may use TimeMonitor.
static ETimeMonitorReportFormat reportFormat_
Parameters for the report() class method.
static RCP< TimeMonitorSurrogate > getTimeMonitorSurrogate()
A list of parameters of arbitrary type.
TimeMonitorSurrogateImplInserter()
Constructor: inject dependency on TimeMonitor into CommandLineProcessor.
ETimeMonitorReportFormat
Valid output formats for report().
Abstract interface for distributed-memory communication.
ETimeMonitorYamlFormat
Valid YAML output formats for report().
Basic command line parser for input from (argc,argv[])
#define TEUCHOSCOMM_LIB_DLL_EXPORT
Smart reference counting pointer class for automatic garbage collection.
static bool setParams_
Whether setReportParameters() completed successfully.
ECounterSetOp
Set operation type for mergeCounterNames() to perform.
Simple wrapper class for raw pointers to single objects where no persisting relationship exists...
A scope-safe timer wrapper class, that can compute global timer statistics.
Injects run-time dependency of a class on TimeMonitor.