STLdoc
STLdocumentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Private Attributes | List of all members
__gnu_profile::__container_size_info Class Reference

A container size instrumentation line in the object table. More...

#include <profile/impl/profiler_container_size.h>

Inheritance diagram for __gnu_profile::__container_size_info:
__gnu_profile::__object_info_base __gnu_profile::__container_size_stack_info

Public Member Functions

 __container_size_info ()
 
 __container_size_info (const __container_size_info &__o)
 
 __container_size_info (__stack_t __stack, std::size_t __num)
 
virtual ~__container_size_info ()
 
void __write (FILE *__f) const
 
float __magnitude () const
 
std::string __advice () const
 
void __merge (const __container_size_info &__o)
 
void __destruct (std::size_t __num, std::size_t __inum)
 
float __resize_cost (std::size_t __from, std::size_t)
 
void __resize (std::size_t __from, std::size_t __to)
 
- Public Member Functions inherited from __gnu_profile::__object_info_base
 __object_info_base ()
 
 __object_info_base (__stack_t __stack)
 
 __object_info_base (const __object_info_base &__o)
 
virtual ~__object_info_base ()
 
bool __is_valid () const
 
__stack_t __stack () const
 

Private Attributes

std::size_t _M_init
 
std::size_t _M_max
 
std::size_t _M_min
 
std::size_t _M_total
 
std::size_t _M_item_min
 
std::size_t _M_item_max
 
std::size_t _M_item_total
 
std::size_t _M_count
 
std::size_t _M_resize
 
std::size_t _M_cost
 

Additional Inherited Members

- Protected Attributes inherited from __gnu_profile::__object_info_base
__stack_t _M_stack
 
bool _M_valid
 

Detailed Description

A container size instrumentation line in the object table.

Constructor & Destructor Documentation

__gnu_profile::__container_size_info::__container_size_info ( )
inline
47  : _M_init(0), _M_max(0), _M_min(0), _M_total(0), _M_item_min(0),
49  { }
std::size_t _M_max
Definition: profiler_container_size.h:141
std::size_t _M_resize
Definition: profiler_container_size.h:148
std::size_t _M_init
Definition: profiler_container_size.h:140
std::size_t _M_count
Definition: profiler_container_size.h:147
std::size_t _M_item_min
Definition: profiler_container_size.h:144
std::size_t _M_total
Definition: profiler_container_size.h:143
std::size_t _M_min
Definition: profiler_container_size.h:142
std::size_t _M_item_total
Definition: profiler_container_size.h:146
std::size_t _M_cost
Definition: profiler_container_size.h:149
std::size_t _M_item_max
Definition: profiler_container_size.h:145
__gnu_profile::__container_size_info::__container_size_info ( const __container_size_info __o)
inline
52  : __object_info_base(__o), _M_init(__o._M_init), _M_max(__o._M_max),
53  _M_min(__o._M_min), _M_total(__o._M_total),
54  _M_item_min(__o._M_item_min), _M_item_max(__o._M_item_max),
55  _M_item_total(__o._M_item_total), _M_count(__o._M_count),
56  _M_resize(__o._M_resize), _M_cost(__o._M_cost)
57  { }
__object_info_base()
Definition: profiler_node.h:126
std::size_t _M_max
Definition: profiler_container_size.h:141
std::size_t _M_resize
Definition: profiler_container_size.h:148
std::size_t _M_init
Definition: profiler_container_size.h:140
std::size_t _M_count
Definition: profiler_container_size.h:147
std::size_t _M_item_min
Definition: profiler_container_size.h:144
std::size_t _M_total
Definition: profiler_container_size.h:143
std::size_t _M_min
Definition: profiler_container_size.h:142
std::size_t _M_item_total
Definition: profiler_container_size.h:146
std::size_t _M_cost
Definition: profiler_container_size.h:149
std::size_t _M_item_max
Definition: profiler_container_size.h:145
__gnu_profile::__container_size_info::__container_size_info ( __stack_t  __stack,
std::size_t  __num 
)
inline
60  : __object_info_base(__stack), _M_init(__num), _M_max(__num),
61  _M_min(0), _M_total(0), _M_item_min(0), _M_item_max(0),
63  { }
__object_info_base()
Definition: profiler_node.h:126
std::size_t _M_max
Definition: profiler_container_size.h:141
__stack_t __stack() const
Definition: profiler_node.h:141
std::size_t _M_resize
Definition: profiler_container_size.h:148
std::size_t _M_init
Definition: profiler_container_size.h:140
std::size_t _M_count
Definition: profiler_container_size.h:147
std::size_t _M_item_min
Definition: profiler_container_size.h:144
std::size_t _M_total
Definition: profiler_container_size.h:143
std::size_t _M_min
Definition: profiler_container_size.h:142
std::size_t _M_item_total
Definition: profiler_container_size.h:146
std::size_t _M_cost
Definition: profiler_container_size.h:149
std::size_t _M_item_max
Definition: profiler_container_size.h:145
virtual __gnu_profile::__container_size_info::~__container_size_info ( )
inlinevirtual
65 { }

Member Function Documentation

std::string __gnu_profile::__container_size_info::__advice ( ) const
inline
81  {
82  std::stringstream __message;
83  if (_M_init < _M_item_max)
84  __message << "change initial container size from " << _M_init
85  << " to " << _M_item_max;
86  return __message.str();
87  }
std::size_t _M_init
Definition: profiler_container_size.h:140
std::size_t _M_item_max
Definition: profiler_container_size.h:145
void __gnu_profile::__container_size_info::__destruct ( std::size_t  __num,
std::size_t  __inum 
)
inline
107  {
108  _M_max = std::max(_M_max, __num);
109  _M_item_max = std::max(_M_item_max, __inum);
110  if (_M_min == 0)
111  {
112  _M_min = __num;
113  _M_item_min = __inum;
114  }
115  else
116  {
117  _M_min = std::min(_M_min, __num);
118  _M_item_min = std::min(_M_item_min, __inum);
119  }
120  _M_total += __num;
121  _M_item_total += __inum;
122  _M_count += 1;
123  }
std::size_t _M_max
Definition: profiler_container_size.h:141
const _Tp & min(const _Tp &__a, const _Tp &__b)
Equivalent to std::min.
Definition: base.h:144
std::size_t _M_count
Definition: profiler_container_size.h:147
const _Tp & max(const _Tp &__a, const _Tp &__b)
Equivalent to std::max.
Definition: base.h:150
std::size_t _M_item_min
Definition: profiler_container_size.h:144
std::size_t _M_total
Definition: profiler_container_size.h:143
std::size_t _M_min
Definition: profiler_container_size.h:142
std::size_t _M_item_total
Definition: profiler_container_size.h:146
std::size_t _M_item_max
Definition: profiler_container_size.h:145
float __gnu_profile::__container_size_info::__magnitude ( ) const
inline
77  { return static_cast<float>(_M_cost); }
std::size_t _M_cost
Definition: profiler_container_size.h:149
void __gnu_profile::__container_size_info::__merge ( const __container_size_info __o)
inline
91  {
92  _M_init = std::max(_M_init, __o._M_init);
93  _M_max = std::max(_M_max, __o._M_max);
94  _M_item_max = std::max(_M_item_max, __o._M_item_max);
95  _M_min = std::min(_M_min, __o._M_min);
96  _M_item_min = std::min(_M_item_min, __o._M_item_min);
97  _M_total += __o._M_total;
98  _M_item_total += __o._M_item_total;
99  _M_count += __o._M_count;
100  _M_cost += __o._M_cost;
101  _M_resize += __o._M_resize;
102  }
std::size_t _M_max
Definition: profiler_container_size.h:141
const _Tp & min(const _Tp &__a, const _Tp &__b)
Equivalent to std::min.
Definition: base.h:144
std::size_t _M_resize
Definition: profiler_container_size.h:148
std::size_t _M_init
Definition: profiler_container_size.h:140
std::size_t _M_count
Definition: profiler_container_size.h:147
const _Tp & max(const _Tp &__a, const _Tp &__b)
Equivalent to std::max.
Definition: base.h:150
std::size_t _M_item_min
Definition: profiler_container_size.h:144
std::size_t _M_total
Definition: profiler_container_size.h:143
std::size_t _M_min
Definition: profiler_container_size.h:142
std::size_t _M_item_total
Definition: profiler_container_size.h:146
std::size_t _M_cost
Definition: profiler_container_size.h:149
std::size_t _M_item_max
Definition: profiler_container_size.h:145
void __gnu_profile::__container_size_info::__resize ( std::size_t  __from,
std::size_t  __to 
)
inline
133  {
134  _M_cost += this->__resize_cost(__from, __to);
135  _M_resize += 1;
136  _M_max = std::max(_M_max, __to);
137  }
float __resize_cost(std::size_t __from, std::size_t)
Definition: profiler_container_size.h:127
std::size_t _M_max
Definition: profiler_container_size.h:141
std::size_t _M_resize
Definition: profiler_container_size.h:148
const _Tp & max(const _Tp &__a, const _Tp &__b)
Equivalent to std::max.
Definition: base.h:150
std::size_t _M_cost
Definition: profiler_container_size.h:149
float __gnu_profile::__container_size_info::__resize_cost ( std::size_t  __from,
std::size_t   
)
inline
128  { return __from; }
void __gnu_profile::__container_size_info::__write ( FILE *  __f) const
inlinevirtual

Implements __gnu_profile::__object_info_base.

69  {
70  std::fprintf(__f, "%Zu %Zu %Zu %Zu %Zu %Zu %Zu %Zu %Zu %Zu\n",
73  }
std::size_t _M_max
Definition: profiler_container_size.h:141
std::size_t _M_resize
Definition: profiler_container_size.h:148
std::size_t _M_init
Definition: profiler_container_size.h:140
std::size_t _M_count
Definition: profiler_container_size.h:147
std::size_t _M_item_min
Definition: profiler_container_size.h:144
std::size_t _M_total
Definition: profiler_container_size.h:143
std::size_t _M_min
Definition: profiler_container_size.h:142
std::size_t _M_item_total
Definition: profiler_container_size.h:146
std::size_t _M_cost
Definition: profiler_container_size.h:149
std::size_t _M_item_max
Definition: profiler_container_size.h:145

Member Data Documentation

std::size_t __gnu_profile::__container_size_info::_M_cost
private
std::size_t __gnu_profile::__container_size_info::_M_count
private
std::size_t __gnu_profile::__container_size_info::_M_init
private
std::size_t __gnu_profile::__container_size_info::_M_item_max
private
std::size_t __gnu_profile::__container_size_info::_M_item_min
private
std::size_t __gnu_profile::__container_size_info::_M_item_total
private
std::size_t __gnu_profile::__container_size_info::_M_max
private
std::size_t __gnu_profile::__container_size_info::_M_min
private
std::size_t __gnu_profile::__container_size_info::_M_resize
private
std::size_t __gnu_profile::__container_size_info::_M_total
private

The documentation for this class was generated from the following file: