12#ifndef ARCCORE_TRACE_INTERNAL_TIMEMETRIC_H
13#define ARCCORE_TRACE_INTERNAL_TIMEMETRIC_H
17#include "arccore/trace/TraceGlobal.h"
18#include "arccore/trace/internal/ITimeMetricCollector.h"
19#include "arccore/base/String.h"
46class ARCCORE_TRACE_EXPORT TimeMetricActionBuildInfo
50 explicit TimeMetricActionBuildInfo(
const String& name)
54 TimeMetricActionBuildInfo(
const String& name,
int phase)
61 const String& name()
const {
return m_name; }
62 int phase()
const {
return m_phase; }
73class ARCCORE_TRACE_EXPORT TimeMetricAction
78 : m_collector(
nullptr)
90 const String& name()
const {
return m_name; }
91 int phase()
const {
return m_phase; }
103class ARCCORE_TRACE_EXPORT TimeMetricId
115 Int64 id()
const {
return m_id; }
129class ARCCORE_TRACE_EXPORT TimeMetricSentry
134 : m_collector(
nullptr)
136 TimeMetricSentry(TimeMetricSentry&& rhs)
137 : m_collector(rhs.m_collector)
141 rhs.m_collector =
nullptr;
144 : m_collector(action.collector())
147 m_id = m_collector->beginAction(action);
149 ~TimeMetricSentry()
noexcept(
false)
152 m_collector->endAction(m_id);
167class ARCCORE_TRACE_EXPORT StandardPhaseTimeMetrics
171 StandardPhaseTimeMetrics() =
default;
197extern "C++" ARCCORE_TRACE_EXPORT TimeMetricAction
198timeMetricPhaseMessagePassing(ITimeMetricCollector* c);
199extern "C++" ARCCORE_TRACE_EXPORT TimeMetricAction
200timeMetricPhaseInputOutput(ITimeMetricCollector* c);
201extern "C++" ARCCORE_TRACE_EXPORT TimeMetricAction
202timeMetricPhaseComputation(ITimeMetricCollector* c);
Interface managing statistics on execution.
const TimeMetricAction & inputOutputPhase() const
Action to indicate that we are in an input-output phase.
const TimeMetricAction & computationPhase() const
Action to indicate that we are in a computation phase.
const TimeMetricAction & messagePassingPhase() const
Action to indicate that we are in a message passing phase.
Unicode character string.
Declarations of types and methods used by message exchange mechanisms.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
std::int64_t Int64
Signed integer type of 64 bits.
TimeMetricPhase
Standard categories for temporal phases.