NEURON
neuron::container::MemoryUsageSummary Struct Reference

#include <memory_usage.hpp>

Public Member Functions

 MemoryUsageSummary (const MemoryUsage &memory_usage)
 

Public Attributes

size_t required {}
 Data that are part of the algorithm. More...
 
size_t convenient {}
 Any memory that's (currently) required to run NEURON. More...
 
size_t oversized {}
 Wasted memory due to the difference of size and capacity. More...
 
size_t leaked {}
 Essentially leaked memory. More...
 

Private Member Functions

void add (size_t &accumulator, const VectorMemoryUsage &increment)
 
void add (const StorageMemoryUsage &increment)
 
void add (const ModelMemoryUsage &model)
 
void add (const cache::ModelMemoryUsage &model)
 

Detailed Description

Definition at line 142 of file memory_usage.hpp.

Constructor & Destructor Documentation

◆ MemoryUsageSummary()

neuron::container::MemoryUsageSummary::MemoryUsageSummary ( const MemoryUsage memory_usage)
inline

Definition at line 170 of file memory_usage.hpp.

Member Function Documentation

◆ add() [1/4]

void neuron::container::MemoryUsageSummary::add ( const cache::ModelMemoryUsage model)
inlineprivate

Definition at line 192 of file memory_usage.hpp.

◆ add() [2/4]

void neuron::container::MemoryUsageSummary::add ( const ModelMemoryUsage model)
inlineprivate

Definition at line 187 of file memory_usage.hpp.

◆ add() [3/4]

void neuron::container::MemoryUsageSummary::add ( const StorageMemoryUsage increment)
inlineprivate

Definition at line 182 of file memory_usage.hpp.

◆ add() [4/4]

void neuron::container::MemoryUsageSummary::add ( size_t &  accumulator,
const VectorMemoryUsage increment 
)
inlineprivate

Definition at line 177 of file memory_usage.hpp.

Member Data Documentation

◆ convenient

size_t neuron::container::MemoryUsageSummary::convenient {}

Any memory that's (currently) required to run NEURON.

This includes things like the live stable identifiers in each soa, the cache::Model and similar things that are needed to implement NEURON correctly, but are not required by the simulation.

This category covers memory that needed to solve a computer science problem rather than a neuroscience problem. Hence, this category could potentially be optimized. It's not obvious how much this category can be optimized.

Definition at line 157 of file memory_usage.hpp.

◆ leaked

size_t neuron::container::MemoryUsageSummary::leaked {}

Essentially leaked memory.

The current implementation doesn't know when it's safe to delete stable identifiers. Hence, when the owning identifier is deallocated the stable identifier is kept alive and leaked into a global collector.

Definition at line 168 of file memory_usage.hpp.

◆ oversized

size_t neuron::container::MemoryUsageSummary::oversized {}

Wasted memory due to the difference of size and capacity.

Definition at line 160 of file memory_usage.hpp.

◆ required

size_t neuron::container::MemoryUsageSummary::required {}

Data that are part of the algorithm.

Definition at line 144 of file memory_usage.hpp.


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