Arcane  v3.16.0.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-2025 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-2025 */
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{
24class Properties;
25class Timer;
26class JSONWriter;
27
28/*---------------------------------------------------------------------------*/
29/*---------------------------------------------------------------------------*/
43{
44 public:
45
46 // Libère les ressources.
47 virtual ~ITimeStats() = default;
48
49 public:
50
52 virtual void beginGatherStats() = 0;
54 virtual void endGatherStats() = 0;
55
56 public:
57
58 virtual void beginAction(const String& action_name) = 0;
59 virtual void endAction(const String& action_name, bool print_time) = 0;
60
61 virtual void beginPhase(eTimePhase phase) = 0;
62 virtual void endPhase(eTimePhase phase) = 0;
63
64 public:
65
71 virtual Real elapsedTime(eTimePhase phase) = 0;
72
80 virtual Real elapsedTime(eTimePhase phase, const String& action) = 0;
81
88 virtual void dumpCurrentStats(const String& name) = 0;
89
90 public:
91
99 virtual void dumpStats(std::ostream& ostr, bool is_verbose, Real nb,
100 const String& name, bool use_elapsed_time = false) = 0;
101
111
118 virtual bool isGathering() const = 0;
119
121 virtual void dumpStatsJSON(JSONWriter& writer) = 0;
122
125
131 virtual void notifyNewIterationLoop() = 0;
132 virtual void saveTimeValues(Properties* p) = 0;
133 virtual void mergeTimeValues(Properties* p) = 0;
134
135 /*
136 * \brief Remet à zéro les statistiques courantes une action est ses sous-actions
137 *
138 * Remet à zéro les statistiques pour l'action \a action_name est ses
139 * sous-actions. Si aucune action de nom \a action_name n'existe, ne fait rien.
140 *
141 * Cette méthode est réservée pour les tests et ne doit pas être utilisée
142 * en dehors de cette configuration pour éviter de rendre invalides les
143 * statistiques temporelles.
144 */
145 virtual void resetStats(const String& action_name) = 0;
146};
147
148/*---------------------------------------------------------------------------*/
149/*---------------------------------------------------------------------------*/
150
151} // End namespace Arcane
152
153/*---------------------------------------------------------------------------*/
154/*---------------------------------------------------------------------------*/
155
156#endif
157
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 l'exécution.
Interface gérant les statistiques sur les temps d'exécution.
Definition ITimeStats.h:43
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
Liste de propriétés.
Definition Properties.h:64
Chaîne de caractères unicode.
Gestion d'un timer.
Definition Timer.h:62
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
double Real
Type représentant un réel.
eTimePhase
Phase d'une action temporelle.