Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Stat.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2026 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/* Stat.h (C) 2000-2025 */
9/* */
10/* Statistics on parallelism. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCCORE_MESSAGEPASSING_STAT_H
13#define ARCCORE_MESSAGEPASSING_STAT_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arccore/message_passing/IStat.h"
18
19#include "arccore/base/String.h"
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
25{
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29
36class ARCCORE_MESSAGEPASSING_EXPORT StatData
37{
39 using OneStatMap = std::map<String, OneStat*>;
40
41 public:
42
43 StatData() = default;
44
45 ARCCORE_DEPRECATED_REASON("Y2023: use mergeData() for each OneStat instead")
46 explicit StatData(const OneStatMap& os_map);
47
48 const StatCollection& stats() const { return m_stat_col; }
49
50 void resetCurrentStat();
51
52 void mergeData(OneStat one_stat);
53 void mergeAllData(const StatData& all_stat);
54
55 ARCCORE_DEPRECATED_REASON("Y2023: Use mergeAllData(const StatData&) instead")
56 void mergeAllData(const OneStatMap& all_stat);
57
58 private:
59
60 StatCollection m_stat_col;
61};
62
63/*---------------------------------------------------------------------------*/
64/*---------------------------------------------------------------------------*/
65
72class ARCCORE_MESSAGEPASSING_EXPORT Stat
73: public IStat
74{
75 public:
76
78 using OneStatMap = std::map<String, OneStat*>;
79
80 public:
81
82 typedef std::pair<String, OneStat*> OneStatValue;
83
84 public:
85
87 ~Stat() override;
88
89 public:
90
91 void add(const String& name, double elapsed_time, Int64 msg_size) override;
92 void enable(bool is_enabled) override { m_is_enabled = is_enabled; }
93
94 void print(std::ostream& o);
95
96 ARCCORE_DEPRECATED_2019("Use statList() instead")
97 const OneStatMap& stats() const override { return m_list; }
98
99 ARCCORE_DEPRECATED_REASON("Y2023: Use statList() instead")
100 const StatData& getData() const { return m_data; }
101
102 const StatCollection& statList() const override;
103
104 void resetCurrentStat() override;
105
106 private:
107
108 bool m_is_enabled = true;
109 OneStatMap m_list;
110 StatData m_data;
111
112 private:
113
114 OneStat* _find(const String& name);
115};
116
117/*---------------------------------------------------------------------------*/
118/*---------------------------------------------------------------------------*/
119
120} // namespace Arcane::MessagePassing
121
122/*---------------------------------------------------------------------------*/
123/*---------------------------------------------------------------------------*/
124
125#endif
Statistical data set for profiling.
Definition Stat.h:37
std::map< String, OneStat * > OneStatMap
DEPRECATED.
Definition Stat.h:39
Statistics manager for parallelism.
Definition Stat.h:74
void enable(bool is_enabled) override
Enables or disables statistics.
Definition Stat.h:92
std::map< String, OneStat * > OneStatMap
DEPRECATED.
Definition Stat.h:78
void add(const String &name, double elapsed_time, Int64 msg_size) override
Adds a statistic.
const OneStatMap & stats() const override
Retrieval of statistics.
Definition Stat.h:97
Declarations of types and methods used by message exchange mechanisms.
std::int64_t Int64
Signed integer type of 64 bits.