Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
ITimeStats.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2024 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/* ITimeStats.h (C) 2000-2024 */
9/* */
10/* Interface gérant les statistiques sur les temps d'exécution. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_ITIMESTATS_H
13#define ARCANE_CORE_ITIMESTATS_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
25class Properties;
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29
30class Timer;
31class JSONWriter;
32
33/*---------------------------------------------------------------------------*/
34/*---------------------------------------------------------------------------*/
48{
49 public:
50
51 // Libère les ressources.
52 virtual ~ITimeStats() = default;
53
54 public:
55
57 virtual void beginGatherStats() = 0;
59 virtual void endGatherStats() = 0;
60
61 public:
62
63 virtual void beginAction(const String& action_name) = 0;
64 virtual void endAction(const String& action_name, bool print_time) = 0;
65
66 virtual void beginPhase(eTimePhase phase) = 0;
67 virtual void endPhase(eTimePhase phase) = 0;
68
69 public:
70
76 virtual Real elapsedTime(eTimePhase phase) = 0;
77
85 virtual Real elapsedTime(eTimePhase phase, const String& action) = 0;
86
93 virtual void dumpCurrentStats(const String& name) = 0;
94
95 public:
96
104 virtual void dumpStats(std::ostream& ostr, bool is_verbose, Real nb,
105 const String& name, bool use_elapsed_time = false) = 0;
106
116
123 virtual bool isGathering() const = 0;
124
126 virtual void dumpStatsJSON(JSONWriter& writer) = 0;
127
130
136 virtual void notifyNewIterationLoop() = 0;
137 virtual void saveTimeValues(Properties* p) = 0;
138 virtual void mergeTimeValues(Properties* p) = 0;
139
140 /*
141 * \brief Remet à zéro les statistiques courantes une action est ses sous-actions
142 *
143 * Remet à zéro les statistiques pour l'action \a action_name est ses
144 * sous-actions. Si aucune action de nom \a action_name n'existe, ne fait rien.
145 *
146 * Cette méthode est réservée pour les tests et ne doit pas être utilisée
147 * en dehors de cette configuration pour éviter de rendre invalides les
148 * statistiques temporelles.
149 */
150 virtual void resetStats(const String& action_name) = 0;
151};
152
153/*---------------------------------------------------------------------------*/
154/*---------------------------------------------------------------------------*/
155
156} // End namespace Arcane
157
158/*---------------------------------------------------------------------------*/
159/*---------------------------------------------------------------------------*/
160
161#endif
162
Déclarations des types généraux de Arcane.
Interface du gestionnaire de parallélisme pour un sous-domaine.
Interface gérant les statistiques sur les temps d'exécution.
Definition ITimeStats.h:48
virtual Real elapsedTime(eTimePhase phase)=0
Temps réel écoulé pour la phase phase.
virtual void dumpTimeAndMemoryUsage(IParallelMng *pm)=0
Affiche la date actuelle et la mémoire consommée.
virtual void dumpCurrentStats(const String &name)=0
Affiche les statistiques d'une action.
virtual void endGatherStats()=0
Arrête la collection des temps.
virtual void beginGatherStats()=0
Démarre la collection des temps.
virtual ITimeMetricCollector * metricCollector()=0
Interface de collection associée.
virtual void dumpStats(std::ostream &ostr, bool is_verbose, Real nb, const String &name, bool use_elapsed_time=false)=0
Affiche les statistiques sur les temps d'exécution.
virtual bool isGathering() const =0
Indique si les statistiques sont actives.
virtual void notifyNewIterationLoop()=0
Notifie qu'on commence une nouvelle itération de la boucle de calcul.
virtual Real elapsedTime(eTimePhase phase, const String &action)=0
Temps écoulé pour une phase d'une action.
virtual void dumpStatsJSON(JSONWriter &writer)=0
Sérialise dans l'écrivain writer les statistiques temporelles.
Ecrivain au format JSON.
Definition JSONWriter.h:33
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Liste de propriétés.
Definition Properties.h:64
Interface gérant les statistiques sur l'exécution.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
eTimePhase
Phase d'une action temporelle.