12#ifndef ARCCORE_TRACE_TIMEMETRIC_H
13#define ARCCORE_TRACE_TIMEMETRIC_H
17#include "arccore/trace/TraceGlobal.h"
18#include "arccore/trace/ITimeMetricCollector.h"
19#include "arccore/base/String.h"
44class ARCCORE_TRACE_EXPORT TimeMetricActionBuildInfo
47 explicit TimeMetricActionBuildInfo(
const String& name)
48 : m_name(name), m_phase(-1){}
49 TimeMetricActionBuildInfo(
const String& name,
int phase)
50 : m_name(name), m_phase(phase){}
52 const String& name()
const {
return m_name; }
53 int phase()
const {
return m_phase; }
62class ARCCORE_TRACE_EXPORT TimeMetricAction
66 : m_collector(
nullptr), m_phase(-1) {}
68 : m_collector(c), m_name(x.name()), m_phase(x.phase()){}
71 const String& name()
const {
return m_name; }
72 int phase()
const {
return m_phase; }
82class ARCCORE_TRACE_EXPORT TimeMetricId
85 TimeMetricId() : m_id(-1){}
87 : m_action(action), m_id(
id){}
89 Int64 id()
const {
return m_id; }
100class ARCCORE_TRACE_EXPORT TimeMetricSentry
103 TimeMetricSentry() : m_collector(
nullptr){}
104 TimeMetricSentry(TimeMetricSentry&& rhs)
105 : m_collector(rhs.m_collector), m_id(rhs.m_id)
108 rhs.m_collector =
nullptr;
111 : m_collector(action.collector())
114 m_id = m_collector->beginAction(action);
116 ~TimeMetricSentry()
noexcept(
false)
119 m_collector->endAction(m_id);
131class ARCCORE_TRACE_EXPORT StandardPhaseTimeMetrics
134 StandardPhaseTimeMetrics() =
default;
154extern "C++" ARCCORE_TRACE_EXPORT TimeMetricAction
155timeMetricPhaseMessagePassing(ITimeMetricCollector* c);
156extern "C++" ARCCORE_TRACE_EXPORT TimeMetricAction
157timeMetricPhaseInputOutput(ITimeMetricCollector* c);
158extern "C++" ARCCORE_TRACE_EXPORT TimeMetricAction
159timeMetricPhaseComputation(ITimeMetricCollector* c);
Interface gérant les statistiques sur l'exécution.
const TimeMetricAction & inputOutputPhase() const
Action pour indiquer qu'on est dans une phase d'entrée-sortie.
const TimeMetricAction & computationPhase() const
Action pour indiquer qu'on est dans une phase de calcul.
const TimeMetricAction & messagePassingPhase() const
Action pour indiquer qu'on est dans une phase d'échange de message.
Chaîne de caractères unicode.
Déclarations des types et méthodes utilisés par les mécanismes d'échange de messages.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
std::int64_t Int64
Type entier signé sur 64 bits.
TimeMetricPhase
Catégories standards pour les phases temporelles.