timemory 3.3.0
Modular C++ Toolkit for Performance Analysis and Logging. Profiling API and Tools for C, C++, CUDA, Fortran, and Python. The C++ template API is essentially a framework to creating tools: it is designed to provide a unifying interface for recording various performance measurements alongside data logging and interfaces to other tools.
tim::quirk Namespace Reference

Classes

struct  auto_start
 Will cause non-auto bundlers to invoke start() during construction. If included as a template parameter of the bundler, it will have no effect. Usage: More...
 
struct  auto_stop
 This quirk is irrelevant. This is the default behavior for all bundlers. See tim::quirk::explicit_stop to suppress this behavior. More...
 
struct  config
 a variadic type which holds zero or more quirks that are passed to the constructor of a component bundler. More...
 
struct  exit_report
 Will cause auto-bundlers to write itself to stdout during destruction. Usage: More...
 
struct  explicit_pop
 Will suppress the implicit pop() within stop() for the bundlers with this characteristic. Combining this with tim::quirk::explicit_push will effectively allow the measurements within the bundler to only be recorded locally and statistics to not be updated during intermediate measurements. Usage: More...
 
struct  explicit_push
 Will suppress the implicit push() within start() for the bundlers with this characteristic Usage: More...
 
struct  explicit_start
 Will cause auto bundlers to suppress calling start during construction. If included as a template parameter of the non-auto bundler, it will have no effect. Usage: More...
 
struct  explicit_stop
 Will cause bundlers to suppress calling stop during destruction. Usage: More...
 
struct  flat_scope
 Will cause bundlers to ignore the global settings and enforce flat storage in the call-graph. Usage: More...
 
struct  is_config
 
struct  is_config< config< Types... > >
 
struct  no_init
 Will cause bundlers to suppress calling any routines related to initializing routines during construction. This is useful to override the default-initializer for a bundler type Usage: More...
 
struct  no_store
 Will cause bundlers to suppress any implicit entries into the component storage. This behavior is the default for tim::lightweight_bundle and is meaningless in that context. It is quite similar to adding both tim::quirk::explicit_push and tim::quirk::explicit_pop, however it effectively propagates tim::quirk::explicit_pop when used within the constructor. Usage: More...
 
struct  stop_last_bundle
 Will cause a bundler to stop the "parent" bundler (of the same type). It can be used as template parameter but be aware that tim::component_tuple<foo, tim::quirk::stop_last_bundle> is NOT the same type as tim::component_tuple<foo>. Usage: More...
 
struct  timeline_scope
 Will cause bundlers to ignore the global settings and enforce timeline storage. Usage: More...
 
struct  tree_scope
 Will cause bundlers to ignore the global settings and enforce hierarchical storage in the call-graph. Usage: More...
 
struct  unsafe
 When present, this argument instructs to skip any safety checks. Example checks include: checking whether a component is in a stop state before startings, checking whether a component has been started before stopping, checking whether push/pop has been applied before applying the inverse Usage: More...