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.
|
#include "timemory/api.hpp"
#include "timemory/macros/language.hpp"
#include "timemory/mpl/apply.hpp"
#include "timemory/mpl/available.hpp"
#include "timemory/operations/types/cache.hpp"
#include "timemory/operations/types/construct.hpp"
#include "timemory/operations/types/generic.hpp"
#include "timemory/utility/types.hpp"
#include <type_traits>
#include "timemory/variadic/functional.cpp"
Go to the source code of this file.
Namespaces | |
namespace | tim |
namespace | tim::component |
namespace | tim::invoke |
namespace | tim::invoke::disjoint |
Functions | |
template<typename... Args> | |
void | tim::invoke::print (std::ostream &os, Args &&... args) |
template<typename... Args> | |
void | tim::invoke::print (std::ostream &os, const std::string &delim, Args &&... args) |
template<template< typename... > class OpT, typename ApiT , template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::invoke (TupleT< Tp... > &obj, Args &&... args) |
template<template< typename... > class OpT, template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::invoke (TupleT< Tp... > &obj, Args &&... args) |
template<template< typename... > class OpT, typename ApiT , template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::invoke (TupleT< Tp &... > &&obj, Args &&... args) |
template<template< typename... > class OpT, template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::invoke (TupleT< Tp &... > &&obj, Args &&... args) |
template<template< typename... > class OpT, typename ApiT , typename... Up, template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::invoke (mpl::piecewise_select< Up... >, TupleT< Tp... > &obj, Args &&... args) |
template<template< typename... > class OpT, typename ApiT , typename... Up, template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::invoke (mpl::piecewise_select< Up... >, TupleT< Tp &... > &obj, Args &&... args) |
template<typename TupleT , typename ApiT , typename... Args> | |
auto | tim::invoke::construct (Args &&... args) |
template<typename TupleT , typename... Args> | |
auto | tim::invoke::construct (Args &&... args) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp> | |
auto | tim::invoke::destroy (TupleT< Tp... > &obj) |
template<template< typename... > class TupleT, typename... Tp> | |
auto | tim::invoke::destroy (TupleT< Tp... > &obj) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp> | |
auto | tim::invoke::destroy (TupleT< Tp &... > &&obj) |
template<template< typename... > class TupleT, typename... Tp> | |
auto | tim::invoke::destroy (TupleT< Tp &... > &&obj) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::start (TupleT< Tp... > &obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::start (TupleT< Tp... > &obj, Args &&... args) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::start (TupleT< Tp &... > &&obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::start (TupleT< Tp &... > &&obj, Args &&... args) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::stop (TupleT< Tp... > &obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::stop (TupleT< Tp... > &obj, Args &&... args) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::stop (TupleT< Tp &... > &&obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::stop (TupleT< Tp &... > &&obj, Args &&... args) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::mark (TupleT< Tp... > &obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::mark (TupleT< Tp... > &obj, Args &&... args) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::mark (TupleT< Tp &... > &&obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::mark (TupleT< Tp &... > &&obj, Args &&... args) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::mark_begin (TupleT< Tp... > &obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::mark_begin (TupleT< Tp... > &obj, Args &&... args) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::mark_begin (TupleT< Tp &... > &&obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::mark_begin (TupleT< Tp &... > &&obj, Args &&... args) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::mark_end (TupleT< Tp... > &obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::mark_end (TupleT< Tp... > &obj, Args &&... args) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::mark_end (TupleT< Tp &... > &&obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::mark_end (TupleT< Tp &... > &&obj, Args &&... args) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::store (TupleT< Tp... > &obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::store (TupleT< Tp... > &obj, Args &&... args) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::store (TupleT< Tp &... > &&obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::store (TupleT< Tp &... > &&obj, Args &&... args) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::reset (TupleT< Tp... > &obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::reset (TupleT< Tp... > &obj, Args &&... args) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::reset (TupleT< Tp &... > &&obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::reset (TupleT< Tp &... > &&obj, Args &&... args) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::record (TupleT< Tp... > &obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::record (TupleT< Tp... > &obj, Args &&... args) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::record (TupleT< Tp &... > &&obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::record (TupleT< Tp &... > &&obj, Args &&... args) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::measure (TupleT< Tp... > &obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::measure (TupleT< Tp... > &obj, Args &&... args) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::measure (TupleT< Tp &... > &&obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::measure (TupleT< Tp &... > &&obj, Args &&... args) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::push (TupleT< Tp... > &obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::push (TupleT< Tp... > &obj, Args &&... args) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::push (TupleT< Tp &... > &&obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::push (TupleT< Tp &... > &&obj, Args &&... args) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::pop (TupleT< Tp... > &obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::pop (TupleT< Tp... > &obj, Args &&... args) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::pop (TupleT< Tp &... > &&obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::pop (TupleT< Tp &... > &&obj, Args &&... args) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::set_prefix (TupleT< Tp... > &obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::set_prefix (TupleT< Tp... > &obj, Args &&... args) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::set_prefix (TupleT< Tp &... > &&obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::set_prefix (TupleT< Tp &... > &&obj, Args &&... args) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::set_scope (TupleT< Tp... > &obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::set_scope (TupleT< Tp... > &obj, Args &&... args) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::set_scope (TupleT< Tp &... > &&obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::set_scope (TupleT< Tp &... > &&obj, Args &&... args) |
template<typename ApiT = TIMEMORY_API, template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::set_state (TupleT< Tp... > &obj, Args &&...) |
template<typename ApiT = TIMEMORY_API, template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::set_state (TupleT< Tp &... > &&obj, Args &&...) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::assemble (TupleT< Tp... > &obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::assemble (TupleT< Tp... > &obj, Args &&... args) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::assemble (TupleT< Tp &... > &&obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::assemble (TupleT< Tp &... > &&obj, Args &&... args) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::derive (TupleT< Tp... > &obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::derive (TupleT< Tp... > &obj, Args &&... args) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::derive (TupleT< Tp &... > &&obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::derive (TupleT< Tp &... > &&obj, Args &&... args) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::audit (TupleT< Tp... > &obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::audit (TupleT< Tp... > &obj, Args &&... args) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::audit (TupleT< Tp &... > &&obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::audit (TupleT< Tp &... > &&obj, Args &&... args) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::add_secondary (TupleT< Tp... > &obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::add_secondary (TupleT< Tp... > &obj, Args &&... args) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::add_secondary (TupleT< Tp &... > &&obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::add_secondary (TupleT< Tp &... > &&obj, Args &&... args) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp, typename... Args> | |
auto | tim::invoke::get (TupleT< Tp... > &obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
auto | tim::invoke::get (TupleT< Tp... > &obj, Args &&... args) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp, typename... Args> | |
auto | tim::invoke::get (TupleT< Tp &... > &&obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
auto | tim::invoke::get (TupleT< Tp &... > &&obj, Args &&... args) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp> | |
auto | tim::invoke::get (TupleT< Tp... > &obj, void *&_ptr, size_t _hash) |
template<template< typename... > class TupleT, typename... Tp> | |
auto | tim::invoke::get (TupleT< Tp... > &obj, void *&_ptr, size_t _hash) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp, typename... Args> | |
auto | tim::invoke::get_labeled (TupleT< Tp... > &obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
auto | tim::invoke::get_labeled (TupleT< Tp... > &obj, Args &&... args) |
template<typename ApiT , template< typename... > class TupleT, typename... Tp, typename... Args> | |
auto | tim::invoke::get_labeled (TupleT< Tp &... > &&obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
auto | tim::invoke::get_labeled (TupleT< Tp &... > &&obj, Args &&... args) |
template<typename ApiT , typename ArchiveT , template< typename... > class TupleT, typename... Tp> | |
auto | tim::invoke::serialize (ArchiveT &ar, TupleT< Tp... > &obj) |
template<typename ArchiveT , template< typename... > class TupleT, typename... Tp> | |
auto | tim::invoke::serialize (ArchiveT &ar, TupleT< Tp... > &obj) |
template<typename ApiT , typename ArchiveT , template< typename... > class TupleT, typename... Tp> | |
auto | tim::invoke::serialize (ArchiveT &ar, TupleT< Tp &... > &&obj) |
template<typename ArchiveT , template< typename... > class TupleT, typename... Tp> | |
auto | tim::invoke::serialize (ArchiveT &ar, TupleT< Tp &... > &&obj) |
template<typename... BundleT> | |
auto | tim::invoke::get_cache () |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::disjoint::start (TupleT< Tp... > &&obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::disjoint::stop (TupleT< Tp... > &&obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::disjoint::mark (TupleT< Tp... > &&obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::disjoint::mark_begin (TupleT< Tp... > &&obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::disjoint::mark_end (TupleT< Tp... > &&obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::disjoint::store (TupleT< Tp... > &&obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::disjoint::reset (TupleT< Tp... > &&obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::disjoint::record (TupleT< Tp... > &&obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::disjoint::measure (TupleT< Tp... > &&obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::disjoint::push (TupleT< Tp... > &&obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::disjoint::pop (TupleT< Tp... > &&obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::disjoint::set_prefix (TupleT< Tp... > &&obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::disjoint::set_scope (TupleT< Tp... > &&obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::disjoint::assemble (TupleT< Tp... > &&obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::disjoint::derive (TupleT< Tp... > &&obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::disjoint::audit (TupleT< Tp... > &&obj, Args &&... args) |
template<template< typename... > class TupleT, typename... Tp, typename... Args> | |
void | tim::invoke::disjoint::add_secondary (TupleT< Tp... > &&obj, Args &&... args) |