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

Gestion d'un timer. Plus de détails...

#include <arcane/core/Timer.h>

+ Graphe de collaboration de Arcane::Timer:

Classes

class  Action
 Postionne le nom de l'action en cours d'exécution. Plus de détails...
 
class  Phase
 Positionne la phase de l'action en cours d'exécution. Plus de détails...
 
class  Sentry
 Sentinelle pour le timer. La sentinelle associée à un timer permet de déclancher celui-ci au moment de sa construction et de l'arrêter au moment de sa destruction. Cela assure que le timer sera bien arrêté en cas d'exception par exemple. Plus de détails...
 
class  SimplePrinter
 Affiche le temps passé entre l'appel au constructeur et le destructeur. Plus de détails...
 

Types publics

enum  eTimerType { TimerVirtual , TimerReal }
 Type du timer. Plus de détails...
 

Fonctions membres publiques

 Timer (ISubDomain *sd, const String &name, eTimerType type)
 Construit un timer.
 
 Timer (ITimerMng *tm, const String &name, eTimerType type)
 Construit un timer.
 
 ~Timer ()
 Libère les ressources.
 
void start ()
 Active le timer.
 
Real stop ()
 Désactive le timer.
 
bool isActivated () const
 Retourne l'état d'activation du timer.
 
const Stringname () const
 Retourne le nom du timer.
 
Real totalTime () const
 Retourne le temps total (en secondes) passé dans le timer.
 
Real lastActivationTime () const
 Retourne le temps (en secondes) passé lors de la dernière activation du timer.
 
Integer nbActivated () const
 Retourne le nombre de fois que le timer a été activé
 
eTimerType type () const
 Retourne le type du temps utilisé
 
void reset ()
 Remet à zéro les compteurs de temps.
 
ITimerMngtimerMng () const
 Gestionnaire associé à ce timer.
 
void _setStartTime (Real t)
 
Real _startTime () const
 

Fonctions membres publiques statiques

static TimeMetricAction phaseAction (ITimeStats *s, eTimePhase phase)
 

Attributs privés

ITimerMngm_timer_mng
 Gestionnaire de timer.
 
eTimerType m_type
 Type du timer.
 
Integer m_nb_activated
 Nombre de fois que le timer a été activé
 
bool m_is_activated
 true si le timer est actif
 
Real m_activation_time
 Temps passé lors de la dernière activation.
 
Real m_total_time
 Temps total passé dans le timer.
 
String m_name
 Nom du timer.
 
Real m_start_time
 Temps du début de la dernière activation.
 

Description détaillée

Gestion d'un timer.

Une instance de cette classe permet de mesurer le temps passé entre son activation par la méthode start() et son arrêt par la méthode stop().

Le timer peut être utilisé plusieurs fois et il est possible de connaître à la fois le nombre d'activation (nbActivated()) et le temps total passé dans ses activations successives (totalTime()).

Il existe deux modes de fonctionnement:

  • TimerVirtual: le timer utilise le temps CPU du processus. Ce temps est constant quelle que soit la charge de la machine;
  • TimerReal: le timer utilise le temps réel. La résolution de ce timer est en général meilleure qu'avec le type précédent mais elle n'est significative que lorsque la machine est dédiée au processus.
Note
Depuis la version 3.6 de Arcane, le TimerVirtual est obsolète et la valeur retournée sera équivalent à TimerReal.

La résolution du timer dépend de la machine. Elle est de l'ordre de la milliseconde pour les timers utilisant le temps CPU et de l'ordre de la microseconde pour les timers utilisant le temps réel.

Définition à la ligne 61 du fichier Timer.h.

Documentation des énumérations membres

◆ eTimerType

Type du timer.

Valeurs énumérées
TimerVirtual 

Timer utilisant le temps CPU (obsolète).

Obsolète:
Ce timer n'est plus utilisé et se comporte comme le temps horloge (TimerReal).
TimerReal 

Timer utilisant le temps réel.

Définition à la ligne 66 du fichier Timer.h.

Documentation des constructeurs et destructeur

◆ Timer() [1/2]

Arcane::Timer::Timer ( ISubDomain sd,
const String name,
eTimerType  type 
)

Construit un timer.

Construit un timer lié au sous-domaine sd, de nom name et de type type.

Définition à la ligne 38 du fichier Timer.cc.

◆ Timer() [2/2]

Arcane::Timer::Timer ( ITimerMng tm,
const String name,
eTimerType  type 
)

Construit un timer.

Construit un timer lié au gestionnaire tm, de nom name et de type type.

Définition à la ligne 47 du fichier Timer.cc.

◆ ~Timer()

Arcane::Timer::~Timer ( )

Libère les ressources.

Définition à la ligne 63 du fichier Timer.cc.

Documentation des fonctions membres

◆ _setStartTime()

void Arcane::Timer::_setStartTime ( Real  t)
inline

Définition à la ligne 236 du fichier Timer.h.

◆ _startTime()

Real Arcane::Timer::_startTime ( ) const
inline

Définition à la ligne 238 du fichier Timer.h.

◆ isActivated()

bool Arcane::Timer::isActivated ( ) const
inline

Retourne l'état d'activation du timer.

Définition à la ligne 210 du fichier Timer.h.

◆ lastActivationTime()

Real Arcane::Timer::lastActivationTime ( ) const
inline

Retourne le temps (en secondes) passé lors de la dernière activation du timer.

Définition à la ligne 219 du fichier Timer.h.

Référencé par Arcane::ArcaneCheckpointModule::_doCheckpoint().

◆ name()

const String & Arcane::Timer::name ( ) const
inline

Retourne le nom du timer.

Définition à la ligne 213 du fichier Timer.h.

◆ nbActivated()

Integer Arcane::Timer::nbActivated ( ) const
inline

Retourne le nombre de fois que le timer a été activé

Définition à la ligne 222 du fichier Timer.h.

Référencé par Arcane::ArcanePostProcessingModule::postProcessingExit().

◆ phaseAction()

TimeMetricAction Arcane::Timer::phaseAction ( ITimeStats s,
eTimePhase  phase 
)
static

Définition à la ligne 270 du fichier Timer.cc.

◆ reset()

void Arcane::Timer::reset ( )

Remet à zéro les compteurs de temps.

Définition à la ligne 101 du fichier Timer.cc.

Références m_activation_time, m_is_activated, et m_total_time.

◆ start()

void Arcane::Timer::start ( )

Active le timer.

Si le timer est déjà actif, cette méthode ne fait rien.

Définition à la ligne 71 du fichier Timer.cc.

Références ARCANE_FATAL, Arcane::ITimerMng::beginTimer(), m_activation_time, m_is_activated, m_nb_activated, et m_timer_mng.

Référencé par Arcane::TimeStats::beginGatherStats(), et Arcane::ParallelCorefinementService::update().

◆ stop()

Real Arcane::Timer::stop ( )

Désactive le timer.

Si le timer n'est pas actif au moment de l'appel, cette méthode ne fait rien.

Renvoie
le temps écoulé (en secondes) depuis la dernière activation.

Définition à la ligne 88 du fichier Timer.cc.

Références ARCANE_FATAL, Arcane::ITimerMng::endTimer(), m_activation_time, m_is_activated, m_timer_mng, et m_total_time.

Référencé par Arcane::TimeStats::endGatherStats(), et Arcane::ParallelCorefinementService::update().

◆ timerMng()

ITimerMng * Arcane::Timer::timerMng ( ) const
inline

Gestionnaire associé à ce timer.

Définition à la ligne 231 du fichier Timer.h.

◆ totalTime()

Real Arcane::Timer::totalTime ( ) const
inline

Retourne le temps total (en secondes) passé dans le timer.

Définition à la ligne 216 du fichier Timer.h.

Référencé par Arcane::ArcanePostProcessingModule::postProcessingExit(), et Arcane::ParallelCorefinementService::update().

◆ type()

eTimerType Arcane::Timer::type ( ) const
inline

Retourne le type du temps utilisé

Définition à la ligne 225 du fichier Timer.h.

Documentation des données membres

◆ m_activation_time

Real Arcane::Timer::m_activation_time
private

Temps passé lors de la dernière activation.

Définition à la ligne 245 du fichier Timer.h.

Référencé par reset(), start(), et stop().

◆ m_is_activated

bool Arcane::Timer::m_is_activated
private

true si le timer est actif

Définition à la ligne 244 du fichier Timer.h.

Référencé par reset(), start(), et stop().

◆ m_name

String Arcane::Timer::m_name
private

Nom du timer.

Définition à la ligne 247 du fichier Timer.h.

◆ m_nb_activated

Integer Arcane::Timer::m_nb_activated
private

Nombre de fois que le timer a été activé

Définition à la ligne 243 du fichier Timer.h.

Référencé par start().

◆ m_start_time

Real Arcane::Timer::m_start_time
private

Temps du début de la dernière activation.

Définition à la ligne 248 du fichier Timer.h.

◆ m_timer_mng

ITimerMng* Arcane::Timer::m_timer_mng
private

Gestionnaire de timer.

Définition à la ligne 241 du fichier Timer.h.

Référencé par start(), et stop().

◆ m_total_time

Real Arcane::Timer::m_total_time
private

Temps total passé dans le timer.

Définition à la ligne 246 du fichier Timer.h.

Référencé par reset(), et stop().

◆ m_type

eTimerType Arcane::Timer::m_type
private

Type du timer.

Définition à la ligne 242 du fichier Timer.h.


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