Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::TimeStats

Statistiques sur les temps d'exécution. Plus de détails...

#include <arcane/impl/TimeStats.h>

+ Graphe d'héritage de Arcane::TimeStats:
+ Graphe de collaboration de Arcane::TimeStats:

Classes

class  Action
 Action. Plus de détails...
 
class  ActionSeries
 Série d'actions. Plus de détails...
 
class  MetricCollector
 
class  PhaseValue
 
struct  TimeValue
 

Types publics

enum  eTimeType { TT_Real = 0 , TT_Virtual }
 
using ActionList = List< Action * >
 

Fonctions membres publiques

 TimeStats (ITimerMng *timer_mng, ITraceMng *trm, const String &name)
 
 TimeStats (const TimeStats &rhs)=delete
 
TimeStatsoperator= (const TimeStats &rhs)=delete
 
void beginGatherStats () override
 Démarre la collection des temps.
 
void endGatherStats () override
 Arrête la collection des temps.
 
void beginAction (const String &action_name) override
 
void endAction (const String &action_name, bool print_time) override
 
void beginPhase (eTimePhase phase_type) override
 
void endPhase (eTimePhase phase_type) override
 
Real elapsedTime (eTimePhase phase) override
 Temps réel écoulé pour la phase phase.
 
Real elapsedTime (eTimePhase phase, const String &action) override
 Temps écoulé pour une phase d'une action.
 
void dumpStats (std::ostream &ostr, bool is_verbose, Real nb, const String &name, bool use_elapsed_time) override
 Affiche les statistiques sur les temps d'exécution.
 
void dumpCurrentStats (const String &action) override
 Affiche les statistiques d'une action.
 
void dumpTimeAndMemoryUsage (IParallelMng *pm) override
 Affiche la date actuelle et la mémoire consommée.
 
bool isGathering () const override
 Indique si les statistiques sont actives.
 
void dumpStatsJSON (JSONWriter &writer) override
 Sérialise dans l'écrivain writer les statistiques temporelles.
 
ITimeMetricCollectormetricCollector () override
 Interface de collection associée.
 
void notifyNewIterationLoop () override
 Notifie qu'on commence une nouvelle itération de la boucle de calcul.
 
void saveTimeValues (Properties *p) override
 
void mergeTimeValues (Properties *p) override
 
void resetStats (const String &name) override
 
- Fonctions membres publiques hérités de Arccore::TraceAccessor
 TraceAccessor (ITraceMng *m)
 Construit un accesseur via le gestionnaire de trace m.
 
 TraceAccessor (const TraceAccessor &rhs)
 Constructeur par recopie.
 
TraceAccessoroperator= (const TraceAccessor &rhs)
 Opérateur de recopie.
 
virtual ~TraceAccessor ()
 Libère les ressources.
 
ITraceMngtraceMng () const
 Gestionnaire de trace.
 
TraceMessage info () const
 Flot pour un message d'information.
 
TraceMessage pinfo () const
 Flot pour un message d'information en parallèle.
 
TraceMessage info (char category) const
 Flot pour un message d'information d'une catégorie donnée.
 
TraceMessage pinfo (char category) const
 Flot pour un message d'information parallèle d'une catégorie donnée.
 
TraceMessage info (bool v) const
 Flot pour un message d'information.
 
TraceMessage warning () const
 Flot pour un message d'avertissement.
 
TraceMessage pwarning () const
 
TraceMessage error () const
 Flot pour un message d'erreur.
 
TraceMessage perror () const
 
TraceMessage log () const
 Flot pour un message de log.
 
TraceMessage plog () const
 Flot pour un message de log.
 
TraceMessage logdate () const
 Flot pour un message de log précédé de la date.
 
TraceMessage fatal () const
 Flot pour un message d'erreur fatale.
 
TraceMessage pfatal () const
 Flot pour un message d'erreur fatale en parallèle.
 
TraceMessageDbg debug (Trace::eDebugLevel=Trace::Medium) const
 Flot pour un message de debug.
 
Trace::eDebugLevel configDbgLevel () const
 Niveau debug du fichier de configuration.
 
TraceMessage info (Int32 verbose_level) const
 Flot pour un message d'information d'un niveau donné
 
TraceMessage linfo () const
 Flot pour un message d'information avec le niveau d'information local à cette instance.
 
TraceMessage linfo (Int32 relative_level) const
 Flot pour un message d'information avec le niveau d'information local à cette instance.
 
void fatalMessage (const StandaloneTraceMessage &o) const
 

Attributs publics statiques

static const Integer NB_TIME_TYPE = 2
 Nombre de valeurs de eTimeType.
 
static const Integer TC_Local = 0
 
static const Integer TC_Cumulative = 1
 

Fonctions membres privées

Action_currentAction ()
 
PhaseValue _currentPhaseValue ()
 
void _checkGathering ()
 
void _computeCumulativeTimes ()
 
void _dumpCumulativeTime (std::ostream &ostr, Action &action, eTimePhase tp, eTimeType tt)
 
void _dumpAllPhases (std::ostream &ostr, Action &action, eTimeType tt, int tc, Real nb)
 

Attributs privés

ITimerMngm_timer_mng = nullptr
 
Timerm_virtual_timer = nullptr
 
Timerm_real_timer = nullptr
 
bool m_is_gathering = false
 
PhaseValue m_current_phase
 
ActionSeriesm_current_action_series = nullptr
 Statistiques sur l'exécution en cours.
 
ActionSeriesm_previous_action_series = nullptr
 Statistiques sur les exécutions précédentes.
 
Actionm_main_action = nullptr
 
Actionm_current_action = nullptr
 
std::stack< eTimePhasem_phases_type
 
bool m_need_compute_elapsed_time = false
 
std::ostringstream m_full_stats_str
 
bool m_full_stats = false
 
String m_name
 
ITimeMetricCollectorm_metric_collector = nullptr
 

Membres hérités additionnels

- Fonctions membres protégées hérités de Arccore::TraceAccessor
void _setLocalVerboseLevel (Int32 v)
 
Int32 _localVerboseLevel () const
 

Description détaillée

Statistiques sur les temps d'exécution.

Définition à la ligne 36 du fichier TimeStats.h.

Documentation des définitions de type membres

◆ ActionList

Définition à la ligne 46 du fichier TimeStats.h.

Documentation des énumérations membres

◆ eTimeType

enum Arcane::TimeStats::eTimeType

Définition à la ligne 48 du fichier TimeStats.h.

Documentation des constructeurs et destructeur

◆ TimeStats()

Arcane::TimeStats::TimeStats ( ITimerMng timer_mng,
ITraceMng trm,
const String name 
)

Définition à la ligne 232 du fichier TimeStats.cc.

◆ ~TimeStats()

Arcane::TimeStats::~TimeStats ( )
override

Définition à la ligne 256 du fichier TimeStats.cc.

Documentation des fonctions membres

◆ _checkGathering()

void Arcane::TimeStats::_checkGathering ( )
private

Définition à la ligne 791 du fichier TimeStats.cc.

◆ _computeCumulativeTimes()

void Arcane::TimeStats::_computeCumulativeTimes ( )
private

Définition à la ligne 616 du fichier TimeStats.cc.

◆ _currentAction()

TimeStats::Action * Arcane::TimeStats::_currentAction ( )
private

Définition à la ligne 756 du fichier TimeStats.cc.

◆ _currentPhaseValue()

TimeStats::PhaseValue Arcane::TimeStats::_currentPhaseValue ( )
private

Définition à la ligne 767 du fichier TimeStats.cc.

◆ _dumpCumulativeTime()

void Arcane::TimeStats::_dumpCumulativeTime ( std::ostream &  ostr,
Action action,
eTimePhase  tp,
eTimeType  tt 
)
private

Définition à la ligne 649 du fichier TimeStats.cc.

◆ beginAction()

void Arcane::TimeStats::beginAction ( const String action_name)
overridevirtual

Implémente Arcane::ITimeStats.

Définition à la ligne 330 du fichier TimeStats.cc.

◆ beginGatherStats()

void Arcane::TimeStats::beginGatherStats ( )
overridevirtual

Démarre la collection des temps.

Implémente Arcane::ITimeStats.

Définition à la ligne 271 du fichier TimeStats.cc.

Références ARCANE_FATAL, Arcane::Timer::start(), Arcane::Timer::TimerReal, et Arcane::Timer::TimerVirtual.

◆ beginPhase()

void Arcane::TimeStats::beginPhase ( eTimePhase  phase_type)
overridevirtual

Implémente Arcane::ITimeStats.

Définition à la ligne 367 du fichier TimeStats.cc.

◆ dumpCurrentStats()

void Arcane::TimeStats::dumpCurrentStats ( const String name)
overridevirtual

Affiche les statistiques d'une action.

Affiche les statistiques de l'action name ainsi que ces sous-actions pour l'itération courante.

Implémente Arcane::ITimeStats.

Définition à la ligne 508 du fichier TimeStats.cc.

Références Arccore::TraceAccessor::info().

◆ dumpStats()

void Arcane::TimeStats::dumpStats ( std::ostream &  ostr,
bool  is_verbose,
Real  nb,
const String name,
bool  use_elapsed_time 
)
overridevirtual

Affiche les statistiques sur les temps d'exécution.

Il est possible de spécifier une valeur pour avoir un temps par itération ou par entité. Si use_elapsed_time est vrai, utilise le temps horloge, sinon utilise le temps CPU.

Implémente Arcane::ITimeStats.

Définition à la ligne 490 du fichier TimeStats.cc.

Références m_current_action_series, et m_previous_action_series.

◆ dumpStatsJSON()

void Arcane::TimeStats::dumpStatsJSON ( JSONWriter writer)
overridevirtual

Sérialise dans l'écrivain writer les statistiques temporelles.

Implémente Arcane::ITimeStats.

Définition à la ligne 822 du fichier TimeStats.cc.

Références m_current_action_series, et m_previous_action_series.

◆ dumpTimeAndMemoryUsage()

void Arcane::TimeStats::dumpTimeAndMemoryUsage ( IParallelMng pm)
overridevirtual

Affiche la date actuelle et la mémoire consommée.

Cette opération est collective sur pm.

Cette opération affiche la mémoire consommée pour le sous-domaine courant ainsi que le min et le max pour tous les sous-domaines.

Implémente Arcane::ITimeStats.

Définition à la ligne 813 du fichier TimeStats.cc.

Références Arcane::MessagePassing::dumpDateAndMemoryUsage(), et Arccore::TraceAccessor::traceMng().

◆ elapsedTime() [1/2]

Real Arcane::TimeStats::elapsedTime ( eTimePhase  phase)
overridevirtual

Temps réel écoulé pour la phase phase.

Retourne le temps réel écoulé (en seconde) pour la phase phase.

Implémente Arcane::ITimeStats.

Définition à la ligne 398 du fichier TimeStats.cc.

◆ elapsedTime() [2/2]

Real Arcane::TimeStats::elapsedTime ( eTimePhase  phase,
const String action 
)
overridevirtual

Temps écoulé pour une phase d'une action.

Retourne le temps réel écoulé (en seconde) pour la phase phase de l'action action. Le temps retourné est celui de l'action et de chacune de ses filles.

Implémente Arcane::ITimeStats.

Définition à la ligne 408 du fichier TimeStats.cc.

Références Arccore::TraceAccessor::info().

◆ endAction()

void Arcane::TimeStats::endAction ( const String action_name,
bool  print_time 
)
overridevirtual

Implémente Arcane::ITimeStats.

Définition à la ligne 346 du fichier TimeStats.cc.

◆ endGatherStats()

void Arcane::TimeStats::endGatherStats ( )
overridevirtual

Arrête la collection des temps.

Implémente Arcane::ITimeStats.

Définition à la ligne 295 du fichier TimeStats.cc.

Références Arccore::String::localstr(), et Arcane::Timer::stop().

◆ endPhase()

void Arcane::TimeStats::endPhase ( eTimePhase  phase_type)
overridevirtual

Implémente Arcane::ITimeStats.

Définition à la ligne 380 du fichier TimeStats.cc.

◆ isGathering()

bool Arcane::TimeStats::isGathering ( ) const
overridevirtual

Indique si les statistiques sont actives.

Les statistiques sont actives entre l'appel à beginGatherStats() et endGatherStats().

Implémente Arcane::ITimeStats.

Définition à la ligne 803 du fichier TimeStats.cc.

◆ mergeTimeValues()

void Arcane::TimeStats::mergeTimeValues ( Properties p)
overridevirtual

Implémente Arcane::ITimeStats.

Définition à la ligne 1006 du fichier TimeStats.cc.

◆ metricCollector()

ITimeMetricCollector * Arcane::TimeStats::metricCollector ( )
overridevirtual

Interface de collection associée.

Implémente Arcane::ITimeStats.

Définition à la ligne 974 du fichier TimeStats.cc.

◆ notifyNewIterationLoop()

void Arcane::TimeStats::notifyNewIterationLoop ( )
overridevirtual

Notifie qu'on commence une nouvelle itération de la boucle de calcul.

Cette information est utilisée pour calculer les temps par itération.

Implémente Arcane::ITimeStats.

Définition à la ligne 1038 du fichier TimeStats.cc.

Références m_current_action_series.

◆ resetStats()

void Arcane::TimeStats::resetStats ( const String name)
overridevirtual

Implémente Arcane::ITimeStats.

Définition à la ligne 526 du fichier TimeStats.cc.

◆ saveTimeValues()

void Arcane::TimeStats::saveTimeValues ( Properties p)
overridevirtual

Implémente Arcane::ITimeStats.

Définition à la ligne 983 du fichier TimeStats.cc.

Documentation des données membres

◆ m_current_action

Action* Arcane::TimeStats::m_current_action = nullptr
private

Définition à la ligne 155 du fichier TimeStats.h.

◆ m_current_action_series

ActionSeries* Arcane::TimeStats::m_current_action_series = nullptr
private

Statistiques sur l'exécution en cours.

Définition à la ligne 151 du fichier TimeStats.h.

Référencé par dumpStats(), dumpStatsJSON(), et notifyNewIterationLoop().

◆ m_current_phase

PhaseValue Arcane::TimeStats::m_current_phase
private

Définition à la ligne 149 du fichier TimeStats.h.

◆ m_full_stats

bool Arcane::TimeStats::m_full_stats = false
private

Définition à la ligne 159 du fichier TimeStats.h.

◆ m_full_stats_str

std::ostringstream Arcane::TimeStats::m_full_stats_str
private

Définition à la ligne 158 du fichier TimeStats.h.

◆ m_is_gathering

bool Arcane::TimeStats::m_is_gathering = false
private

Définition à la ligne 148 du fichier TimeStats.h.

◆ m_main_action

Action* Arcane::TimeStats::m_main_action = nullptr
private

Définition à la ligne 154 du fichier TimeStats.h.

◆ m_metric_collector

ITimeMetricCollector* Arcane::TimeStats::m_metric_collector = nullptr
private

Définition à la ligne 161 du fichier TimeStats.h.

◆ m_name

String Arcane::TimeStats::m_name
private

Définition à la ligne 160 du fichier TimeStats.h.

◆ m_need_compute_elapsed_time

bool Arcane::TimeStats::m_need_compute_elapsed_time = false
private

Définition à la ligne 157 du fichier TimeStats.h.

◆ m_phases_type

std::stack<eTimePhase> Arcane::TimeStats::m_phases_type
private

Définition à la ligne 156 du fichier TimeStats.h.

◆ m_previous_action_series

ActionSeries* Arcane::TimeStats::m_previous_action_series = nullptr
private

Statistiques sur les exécutions précédentes.

Définition à la ligne 153 du fichier TimeStats.h.

Référencé par dumpStats(), et dumpStatsJSON().

◆ m_real_timer

Timer* Arcane::TimeStats::m_real_timer = nullptr
private

Définition à la ligne 147 du fichier TimeStats.h.

◆ m_timer_mng

ITimerMng* Arcane::TimeStats::m_timer_mng = nullptr
private

Définition à la ligne 145 du fichier TimeStats.h.

◆ m_virtual_timer

Timer* Arcane::TimeStats::m_virtual_timer = nullptr
private

Définition à la ligne 146 du fichier TimeStats.h.

◆ NB_TIME_TYPE

const Integer Arcane::TimeStats::NB_TIME_TYPE = 2
static

Nombre de valeurs de eTimeType.

Définition à la ligne 55 du fichier TimeStats.h.

Référencé par Arcane::TimeStats::Action::reset().

◆ TC_Cumulative

const Integer Arcane::TimeStats::TC_Cumulative = 1
static

Définition à la ligne 58 du fichier TimeStats.h.

◆ TC_Local

const Integer Arcane::TimeStats::TC_Local = 0
static

Définition à la ligne 57 du fichier TimeStats.h.


La documentation de cette classe a été générée à partir des fichiers suivants :