Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Timer.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2022 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* Timer.h (C) 2000-2022 */
9/* */
10/* Gestion d'un timer. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_TIMER_H
13#define ARCANE_TIMER_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/String.h"
18
19#include "arcane/ArcaneTypes.h"
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24namespace Arcane
25{
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29
30class ITimerMng;
31class ITimeStats;
32
33/*---------------------------------------------------------------------------*/
34/*---------------------------------------------------------------------------*/
61class ARCANE_CORE_EXPORT Timer
62{
63 public:
64
67 {
76 TimerReal
77 };
78
79 public:
80
88 class ARCANE_CORE_EXPORT Sentry
89 {
90 public:
92 Sentry(Timer* t) : m_timer(t)
93 { m_timer->start(); }
96 { m_timer->stop(); }
97 private:
99 };
100
109 class ARCANE_CORE_EXPORT Action
110 {
111 public:
113 Action(ITimeStats* stats,const String& action_name,bool print_time=false);
114 ~Action();
115 public:
116 private:
117 ITimeStats* m_stats;
118 String m_action_name;
119 bool m_print_time;
120 private:
121 void _init();
122 };
123
127 class ARCANE_CORE_EXPORT Phase
128 {
129 public:
130 public:
133 ~Phase();
134 public:
135 private:
137 eTimePhase m_phase_type;
138 private:
139 void _init();
140 };
141
155 class ARCANE_CORE_EXPORT SimplePrinter
156 {
157 public:
161 private:
162 ITraceMng* m_trace_mng;
163 Real m_begin_time;
164 bool m_is_active;
165 String m_message;
166 private:
167 void _init();
168 };
169
170 public:
171
178 Timer(ISubDomain* sd,const String& name,eTimerType type);
179
186 Timer(ITimerMng* tm,const String& name,eTimerType type);
187
188 ~Timer();
189
190 public:
191
197 void start();
198
207 Real stop();
208
210 bool isActivated() const { return m_is_activated; }
211
213 const String& name() const { return m_name; }
214
216 Real totalTime() const { return m_total_time; }
217
219 Real lastActivationTime() const { return m_activation_time; }
220
222 Integer nbActivated() const { return m_nb_activated; }
223
225 eTimerType type() const { return m_type; }
226
228 void reset();
229
231 ITimerMng* timerMng() const { return m_timer_mng; }
232 public:
233 static TimeMetricAction phaseAction(ITimeStats* s,eTimePhase phase);
234 public:
236 void _setStartTime(Real t) { m_start_time = t; }
238 Real _startTime() const { return m_start_time; }
239 private:
240
249};
250
251/*---------------------------------------------------------------------------*/
252/*---------------------------------------------------------------------------*/
253
254} // End namespace Arcane
255
256/*---------------------------------------------------------------------------*/
257/*---------------------------------------------------------------------------*/
258
259#endif
260
Interface du gestionnaire d'un sous-domaine.
Definition ISubDomain.h:74
Interface gérant les statistiques sur les temps d'exécution.
Definition ITimeStats.h:48
Interface d'un gestionnaire de timer.
Definition ITimerMng.h:53
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Postionne le nom de l'action en cours d'exécution.
Definition Timer.h:110
Positionne la phase de l'action en cours d'exécution.
Definition Timer.h:128
ITimeStats * m_stats
Gestionnaire de sous-domaine.
Definition Timer.h:136
Sentinelle pour le timer. La sentinelle associée à un timer permet de déclancher celui-ci au moment d...
Definition Timer.h:89
Sentry(Timer *t)
Associe le timer t et le démarre.
Definition Timer.h:92
~Sentry()
Stoppe le timer associé
Definition Timer.h:95
Timer * m_timer
Timer associé
Definition Timer.h:98
Affiche le temps passé entre l'appel au constructeur et le destructeur.
Definition Timer.h:156
Gestion d'un timer.
Definition Timer.h:62
const String & name() const
Retourne le nom du timer.
Definition Timer.h:213
void _setStartTime(Real t)
Definition Timer.h:236
Integer nbActivated() const
Retourne le nombre de fois que le timer a été activé
Definition Timer.h:222
eTimerType m_type
Type du timer.
Definition Timer.h:242
Real m_activation_time
Temps passé lors de la dernière activation.
Definition Timer.h:245
Integer m_nb_activated
Nombre de fois que le timer a été activé
Definition Timer.h:243
String m_name
Nom du timer.
Definition Timer.h:247
Real _startTime() const
Definition Timer.h:238
ITimerMng * timerMng() const
Gestionnaire associé à ce timer.
Definition Timer.h:231
eTimerType
Type du timer.
Definition Timer.h:67
@ TimerVirtual
Timer utilisant le temps CPU (obsolète).
Definition Timer.h:74
ITimerMng * m_timer_mng
Gestionnaire de timer.
Definition Timer.h:241
eTimerType type() const
Retourne le type du temps utilisé
Definition Timer.h:225
Real totalTime() const
Retourne le temps total (en secondes) passé dans le timer.
Definition Timer.h:216
Real m_start_time
Temps du début de la dernière activation.
Definition Timer.h:248
bool isActivated() const
Retourne l'état d'activation du timer.
Definition Timer.h:210
bool m_is_activated
true si le timer est actif
Definition Timer.h:244
Real lastActivationTime() const
Retourne le temps (en secondes) passé lors de la dernière activation du timer.
Definition Timer.h:219
Real m_total_time
Temps total passé dans le timer.
Definition Timer.h:246
Interface du gestionnaire de traces.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
eTimePhase
Phase d'une action temporelle.