12#ifndef ARCANE_UTILS_PROFILING_H
13#define ARCANE_UTILS_PROFILING_H
19#include "arcane/utils/String.h"
37class ARCANE_UTILS_EXPORT ScopedStatLoop
46 Int64 m_begin_time = 0.0;
55class ARCANE_UTILS_EXPORT ForLoopStatInfoList
59 ForLoopStatInfoList();
60 ~ForLoopStatInfoList();
133 Int64 m_begin_time = 0;
136 Int64 m_end_time = 0;
158 ARCANE_DEPRECATED_REASON(
"Y2023: Use _threadLocalForLoopInstance() instead")
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.
std::atomic< Int64 > m_nb_chunk
Nombre de chunk de décomposition de la boucle (en multi-thread)
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 pour les accélérateurs.
Statistiques cumulées sur le nombre de boucles exécutées.
Statistiques d'exécution des boucles.
ForLoopStatInfoListImpl * _internalImpl() const
Type opaque pour l'implémentation interne.
-*- 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.