12#ifndef ARCANE_UTILS_PROFILING_H
13#define ARCANE_UTILS_PROFILING_H
19#include "arcane/utils/String.h"
29class AcceleratorStatInfoList;
37class ARCANE_UTILS_EXPORT ScopedStatLoop
46 Int64 m_begin_time = 0.0;
55class ARCANE_UTILS_EXPORT ForLoopStatInfoList
59 ForLoopStatInfoList();
60 ~ForLoopStatInfoList();
72 ForLoopStatInfoListImpl* _internalImpl()
const {
return m_p; }
76 ForLoopStatInfoListImpl* m_p =
nullptr;
130 std::atomic<Int64> m_nb_chunk = 0;
133 Int64 m_begin_time = 0;
136 Int64 m_end_time = 0;
158 ARCANE_DEPRECATED_REASON(
"Y2023: Use _threadLocalForLoopInstance() instead")
193 static void visitAcceleratorStat(
const std::function<
void(
const impl::AcceleratorStatInfoList&)>& f);
195 static const impl::ForLoopCumulativeStat& globalLoopStat();
211 static impl::AcceleratorStatInfoList* _threadLocalAcceleratorInstance();
215 static Int32 m_profiling_level;
Déclarations des types utilisés dans Arcane.
Classe pour gérer le profiling d'une seule exécution d'une boucle.
void setEndTime(Int64 v)
Positionne le temps de fin de la boucle en nanoseconde.
void setBeginTime(Int64 v)
Positionne le temps de début de la boucle (en nanoseconde)
Int64 nbChunk() const
Nombre de chunks.
void incrementNbChunk()
Incrémente le nombre de chunk utilisé.
Int64 execTime() const
Temps d'exécution (en nanoseconde).
Informations de trace pour une boucle 'for'.
Gestionnaire pour le profiling.
static void setProfilingLevel(Int32 level)
Positionne le niveau de profilage.
static impl::ForLoopStatInfoList * threadLocalInstance()
static bool hasProfiling()
Indique si le profilage est actif.
static Int32 profilingLevel()
Niveau de profilage.
Statistiques d'exécution des boucles.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
std::int64_t Int64
Type entier signé sur 64 bits.
std::int32_t Int32
Type entier signé sur 32 bits.