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::operation Namespace Reference

Namespaces

namespace  finalize
 

Classes

struct  add_secondary
 component contains secondary data resembling the original data but should be another node entry in the graph. These types must provide a get_secondary() member function and that member function must return a pair-wise iterable container, e.g. std::map, of types: More...
 
struct  add_statistics
 Enabling statistics in timemory has two parts: More...
 
struct  assemble
 
struct  async
 
struct  audit
 The purpose of this operation class is for a component to provide some extra customization within a GOTCHA function. It allows a GOTCHA component to inspect the arguments and the return type of a wrapped function. To add support to a component, define void audit(std::string, context, <Args...>). The first argument is the function name (possibly mangled), the second is either type tim::audit::incoming or tim::audit::outgoing, and the remaining arguments are the corresponding types. More...
 
struct  base_printer
 invoked from the base class to provide default printing behavior More...
 
struct  cache
 
struct  check_record_type
 
struct  cleanup
 This class executes a cleanup routine at the end of the application. More...
 
struct  common_utils
 common string manipulation utilities More...
 
struct  compose
 The purpose of this operation class is operating on two components to compose a result, e.g. use system-clock and user-clock to get a cpu-clock. More...
 
struct  construct
 The purpose of this operation class is construct an object with specific args. More...
 
struct  construct< Tp * >
 
struct  construct_cache
 
struct  construct_cache< TupleT< Tp... > >
 
struct  construct_cache< type_list< Tp... > >
 
struct  copy
 This operation class is used for copying the object generically. More...
 
struct  decode
 This class post-processes strings for a given API. More...
 
struct  delayed_start
 
struct  delayed_stop
 
struct  derive
 
struct  divide
 This operation class is used for division of a component. More...
 
struct  dummy
 
struct  echo_measurement
 This operation class echoes DartMeasurements for a CDash dashboard. More...
 
struct  echo_measurement< Tp, false >
 
struct  echo_measurement< Tp, true >
 
struct  enabled_statistics
 
struct  enabled_value_storage
 
struct  extra_serialization
 Provides a hook to add additional serialization data for the type. Examples include the roofline components adding roofline data. Note that this is data for the component type, not data for a component entry in the call-graph. More...
 
struct  fini
 This operation class is used for invoking the static initializer and thread-local initializer of a component. More...
 
struct  fini_storage
 
struct  fold_assemble
 
struct  fold_assemble< CompT< C... > >
 
struct  fold_derive
 
struct  fold_derive< CompT< C... > >
 
struct  generic_counter
 
struct  generic_counter< quirk::config< Types... > >
 
struct  generic_deleter
 
struct  generic_deleter< quirk::config< Types... > >
 
struct  generic_operator
 This operation class is similar to pointer_operator but can handle non-pointer types. More...
 
struct  generic_operator< quirk::config< Types... >, Op, Tag >
 
struct  get
 The purpose of this operation class is to provide a non-template hook to get the object itself. More...
 
struct  get_data
 The purpose of this operation class is to combine the output types from the "get()" member function for multiple components – this is specifically used in the Python interface to provide direct access to the results. More...
 
struct  get_depth
 This operation attempts to call a member function which provides a depth value. More...
 
struct  get_is_flat
 This operation attempts to call a member function which provides whether or not the component pushed to storage at a depth of zero. More...
 
struct  get_is_invalid
 This operation attempts to call a member function which provides whether or not the component is in a valid state for data access and updates. More...
 
struct  get_is_on_stack
 This operation attempts to call a member function which provides whether or not the component is in a valid state for data access and updates. More...
 
struct  get_iterator
 This operation attempts to call a member function which provides a pointer to a component which exists in storage. More...
 
struct  get_labeled_data
 
struct  get_storage
 This operation attempts to call a member function which provides a pointer to the data storage structure for a component which should be updated for aggregation/logging. More...
 
struct  has_data
 
struct  init
 This operation class is used for invoking the static initializer and thread-local initializer of a component. More...
 
struct  init_mode
 
struct  init_storage
 
struct  insert
 
struct  is_enabled
 
struct  is_running
 This operation attempts to call a member function which provides whether or not the component currently within a phase measurement. More...
 
struct  mark
 This operation class is used for marking some event (usually in some external profiler) More...
 
struct  mark_begin
 This operation class is used for asynchronous routines such as cuda_event and nvtx_marker which are passed cudaStream_t instances. More...
 
struct  mark_end
 This operation class is used for asynchronous routines such as cuda_event and nvtx_marker which are passed cudaStream_t instances. More...
 
struct  measure
 This operation class is used for a single measurement for a component. More...
 
struct  minus
 Define subtraction operations. More...
 
struct  multiply
 This operation class is used for multiplication of a component. More...
 
struct  non_vexing
 
struct  plus
 Define addition operations. More...
 
struct  pop
 
struct  pop_node
 
struct  print
 print routines for individual components More...
 
struct  print_header
 
struct  print_statistics
 prints the statistics for a type More...
 
struct  print_storage
 Print the storage for a component. More...
 
struct  print_storage< Tp * >
 
struct  priority_start
 
struct  priority_stop
 
struct  push_node
 
struct  python_class_name
 This class generates the class name for a component according to the standard Python naming convention. More...
 
struct  python_class_name< void >
 
struct  record
 
struct  reset
 
struct  sample
 This operation class is used for sampling. More...
 
struct  serialization
 
struct  set_depth_change
 This operation attempts to call a member function which the component provides to internally store whether or not the component triggered a depth change when it was push to the call-stack or when it was popped from the call-stack. More...
 
struct  set_is_flat
 This operation attempts to call a member function which the component provides to internally store whether or not the component triggered a depth change when it was push to the call-stack or when it was popped from the call-stack. More...
 
struct  set_is_invalid
 This operation attempts to call a member function which sets whether or not the component is in a valid state for data access and updates. More...
 
struct  set_is_on_stack
 This operation attempts to call a member function which the component provides to internally store whether or not the component is referenced in persistent storage. More...
 
struct  set_is_running
 This operation attempts to call a member function which sets whether or not the component is currently collecting. More...
 
struct  set_iterator
 This operation attempts to call a member function which sets a pointer to a reference value in persistant storage. More...
 
struct  set_prefix
 Call the set_prefix member function. These instantiations are always inlined because of the use of string_view. Without inlining, you will get undefined symbols in C++14 code when timemory was compiled with C++17. More...
 
struct  set_scope
 
struct  set_started
 This operation attempts to call a member function which the component provides to internally store whether or not it is currently within a phase measurement (to prevent restarts) More...
 
struct  set_state
 
struct  set_stopped
 This operation attempts to call a member function which the component provides to internally store whether or not it is currently within a phase measurement (to prevent stopping when it hasn't been started) More...
 
struct  stack_pop
 
struct  stack_push
 
struct  standard_start
 
struct  standard_stop
 
struct  start
 
struct  stats_enabled
 
struct  stop
 
struct  store
 

Typedefs

template<typename U >
using is_enabled_t = typename is_enabled< U >::type
 
using fini_mode = init_mode
 
template<int ModeV>
using mode_constant = std::integral_constant< int, ModeV >
 
template<typename U >
using has_data_t = typename has_data< U >::type
 
template<typename T >
using insert_node = push_node< T >
 
template<typename... Tp>
using construct_cache_t = typename construct_cache< Tp... >::type
 

Functions

template<typename U >
decltype(internal::resolve_record_type< U >(0)) resolve_record_type ()
 

Class Documentation

◆ tim::operation::echo_measurement

struct tim::operation::echo_measurement
template<typename T, bool Enabled = trait::echo_enabled<T>::value>
struct tim::operation::echo_measurement< T, Enabled >

This operation class echoes DartMeasurements for a CDash dashboard.

Definition at line 985 of file types.hpp.

+ Collaboration diagram for tim::operation::echo_measurement< T, Enabled >:

◆ tim::operation::fold_assemble

struct tim::operation::fold_assemble
template<typename Tp>
struct tim::operation::fold_assemble< Tp >

Definition at line 51 of file assemble.hpp.

+ Collaboration diagram for tim::operation::fold_assemble< Tp >:

◆ tim::operation::fold_derive

struct tim::operation::fold_derive
template<typename Tp>
struct tim::operation::fold_derive< Tp >

Definition at line 49 of file derive.hpp.

+ Collaboration diagram for tim::operation::fold_derive< Tp >:

◆ tim::operation::has_data

struct tim::operation::has_data
template<typename Up, typename Ap = trait::is_available_t<Up>>
struct tim::operation::has_data< Up, Ap >

Definition at line 119 of file types.hpp.

+ Collaboration diagram for tim::operation::has_data< Up, Ap >:

◆ tim::operation::non_vexing

struct tim::operation::non_vexing

Definition at line 183 of file declaration.hpp.

+ Collaboration diagram for tim::operation::non_vexing:

Typedef Documentation

◆ construct_cache_t

template<typename... Tp>
using tim::operation::construct_cache_t = typedef typename construct_cache<Tp...>::type

Definition at line 125 of file cache.hpp.

◆ fini_mode

Definition at line 237 of file types.hpp.

◆ has_data_t

template<typename U >
using tim::operation::has_data_t = typedef typename has_data<U>::type

Definition at line 245 of file types.hpp.

◆ insert_node

template<typename T >
using tim::operation::insert_node = typedef push_node<T>

Definition at line 1513 of file types.hpp.

◆ is_enabled_t

template<typename U >
using tim::operation::is_enabled_t = typedef typename is_enabled<U>::type

Definition at line 160 of file types.hpp.

◆ mode_constant

template<int ModeV>
using tim::operation::mode_constant = typedef std::integral_constant<int, ModeV>

Definition at line 240 of file types.hpp.

Function Documentation

◆ resolve_record_type()

template<typename U >
decltype(internal::resolve_record_type< U >(0)) tim::operation::resolve_record_type ( )

Definition at line 187 of file types.hpp.

188{
189 return internal::resolve_record_type<U>(0);
190}