Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::ProfilingRegistry Class Reference

Profiling manager. More...

#include </__w/arcaneframework.github.io/arcaneframework.github.io/framework/arccore/src/base/arccore/base/Profiling.h>

Collaboration diagram for Arcane::ProfilingRegistry:

Static Public Member Functions

static Impl::ForLoopStatInfoListthreadLocalInstance ()
static void setProfilingLevel (Int32 level)
 Sets the profiling level.
static Int32 profilingLevel ()
 Profiling level.
static bool hasProfiling ()
 Indicates if profiling is active.
static void visitLoopStat (const std::function< void(const Impl::ForLoopStatInfoList &)> &f)
 Visits the loop statistics list.
static void visitAcceleratorStat (const std::function< void(const Impl::AcceleratorStatInfoList &)> &f)
 Visits the accelerator statistics list.
static const Impl::ForLoopCumulativeStatglobalLoopStat ()
static Impl::ForLoopStatInfoList_threadLocalForLoopInstance ()
static Impl::AcceleratorStatInfoList_threadLocalAcceleratorInstance ()

Static Private Attributes

static Int32 m_profiling_level = 0

Detailed Description

Profiling manager.

It is possible to enable profiling by calling setProfilingLevel() with a value greater than or equal to 1.

Statistics are added by retrieving an instance of impl::ForLoopStatInfoList specific to the currently executing thread.

Definition at line 152 of file arccore/src/base/arccore/base/Profiling.h.

Member Function Documentation

◆ _threadLocalAcceleratorInstance()

Impl::AcceleratorStatInfoList * Arcane::ProfilingRegistry::_threadLocalAcceleratorInstance ( )
static

. Thread-local instance of the accelerator statistics manager

Definition at line 281 of file Profiling.cc.

◆ _threadLocalForLoopInstance()

Impl::ForLoopStatInfoList * Arcane::ProfilingRegistry::_threadLocalForLoopInstance ( )
static

. Thread-local instance of the loop statistics manager

Definition at line 272 of file Profiling.cc.

Referenced by Arcane::Accelerator::Impl::RunCommandImpl::notifyEndExecuteKernel().

Here is the caller graph for this function:

◆ globalLoopStat()

const Impl::ForLoopCumulativeStat & Arcane::ProfilingRegistry::globalLoopStat ( )
static

Definition at line 317 of file Profiling.cc.

◆ hasProfiling()

bool Arcane::ProfilingRegistry::hasProfiling ( )
inlinestatic

Indicates if profiling is active.

Definition at line 175 of file arccore/src/base/arccore/base/Profiling.h.

◆ profilingLevel()

Int32 Arcane::ProfilingRegistry::profilingLevel ( )
inlinestatic

Profiling level.

Definition at line 172 of file arccore/src/base/arccore/base/Profiling.h.

Referenced by Arcane::Application::initialize().

Here is the caller graph for this function:

◆ setProfilingLevel()

void Arcane::ProfilingRegistry::setProfilingLevel ( Int32 level)
static

Sets the profiling level.

If 0, there is no profiling. Profiling is active starting from level 1.

Definition at line 308 of file Profiling.cc.

Referenced by Arcane::Application::build().

Here is the caller graph for this function:

◆ threadLocalInstance()

Impl::ForLoopStatInfoList * Arcane::ProfilingRegistry::threadLocalInstance ( )
static

TODO: Deprecate. Use static impl::ForLoopStatInfoList* _threadLocalForLoopInstance() instead.

Definition at line 263 of file Profiling.cc.

◆ visitAcceleratorStat()

void Arcane::ProfilingRegistry::visitAcceleratorStat ( const std::function< void(const Impl::AcceleratorStatInfoList &)> & f)
static

Visits the accelerator statistics list.

There is an instance of impl::AcceleratorStatInfoList per thread that executed a loop.

This method must not be called when profiling is active.

Definition at line 299 of file Profiling.cc.

Referenced by Arcane::Accelerator::RunnerInternal::printProfilingInfos().

Here is the caller graph for this function:

◆ visitLoopStat()

void Arcane::ProfilingRegistry::visitLoopStat ( const std::function< void(const Impl::ForLoopStatInfoList &)> & f)
static

Visits the loop statistics list.

There is an instance of impl::ForLoopStatInfoList per thread that executed a loop.

This method must not be called if loops are currently executing.

Definition at line 290 of file Profiling.cc.

Member Data Documentation

◆ m_profiling_level

Int32 Arcane::ProfilingRegistry::m_profiling_level = 0
staticprivate

Definition at line 217 of file arccore/src/base/arccore/base/Profiling.h.


The documentation for this class was generated from the following files: