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::component::craypat_record Struct Reference

Provides scoping the CrayPAT profiler. Global initialization stops the profiler, the first call to start() starts the profiler again on the calling thread. Instance counting is enabled per-thread and each call to start increments the counter. All calls to stop() have no effect until the counter reaches zero, at which point the compiler is turned off again. More...

#include "timemory/components/craypat/components.hpp"

+ Collaboration diagram for tim::component::craypat_record:

Public Types

using this_type = craypat_record
 
using value_type = void
 
using base_type = base< this_type, void >
 
using tracker_type = policy::instance_tracker< this_type >
 
using storage_type = empty_storage
 

Public Member Functions

void start ()
 
void stop ()
 
void get () const
 

Static Public Member Functions

static std::string label ()
 
static std::string description ()
 
static void global_init ()
 
static void global_finalize ()
 
template<typename... Args>
static opaque get_opaque (Args &&...)
 

Detailed Description

Provides scoping the CrayPAT profiler. Global initialization stops the profiler, the first call to start() starts the profiler again on the calling thread. Instance counting is enabled per-thread and each call to start increments the counter. All calls to stop() have no effect until the counter reaches zero, at which point the compiler is turned off again.

Definition at line 53 of file components.hpp.

Member Typedef Documentation

◆ base_type

Definition at line 59 of file components.hpp.

◆ storage_type

Definition at line 66 of file declaration.hpp.

◆ this_type

◆ tracker_type

◆ value_type

Definition at line 58 of file components.hpp.

Member Function Documentation

◆ description()

static std::string tim::component::craypat_record::description ( )
inlinestatic

Definition at line 63 of file components.hpp.

64 {
65 return "Toggles CrayPAT recording on calling thread";
66 }

◆ get()

void tim::component::empty_base::get ( ) const
inlineinherited

Definition at line 69 of file declaration.hpp.

69{}

◆ get_opaque()

template<typename... Args>
static opaque tim::component::empty_base::get_opaque ( Args &&  ...)
inlinestaticinherited

Definition at line 72 of file declaration.hpp.

73 {
74 return opaque{};
75 }

◆ global_finalize()

static void tim::component::craypat_record::global_finalize ( )
inlinestatic

Definition at line 70 of file components.hpp.

70{ backend::craypat::record(PAT_STATE_OFF); }
void record(TupleT< Tp... > &obj, Args &&... args)
Definition: functional.cpp:634

References tim::invoke::record().

◆ global_init()

static void tim::component::craypat_record::global_init ( )
inlinestatic

Definition at line 68 of file components.hpp.

68{ backend::craypat::record(PAT_STATE_OFF); }

References tim::invoke::record().

◆ label()

static std::string tim::component::craypat_record::label ( )
inlinestatic

Definition at line 62 of file components.hpp.

62{ return "craypat_record"; }

◆ start()

void tim::component::craypat_record::start ( )
inline

Definition at line 72 of file components.hpp.

73 {
75 if(tracker_type::m_thr == 0)
76 backend::craypat::record(PAT_STATE_ON);
77 }
void start(TupleT< Tp... > &obj, Args &&... args)
Definition: functional.cpp:316

References tim::invoke::record(), and tim::invoke::start().

◆ stop()

void tim::component::craypat_record::stop ( )
inline

Definition at line 79 of file components.hpp.

80 {
82 if(tracker_type::m_thr == 0)
83 backend::craypat::record(PAT_STATE_OFF);
84 }
void stop(TupleT< Tp... > &obj, Args &&... args)
Definition: functional.cpp:386

References tim::invoke::record(), and tim::invoke::stop().


The documentation for this struct was generated from the following file: