Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arccore::DefaultMemoryAllocator3

Allocateur mémoire via malloc/realloc/free. Plus de détails...

#include </__w/arcaneframework.github.io/arcaneframework.github.io/framework/arccore/src/collections/arccore/collections/IMemoryAllocator.h>

+ Graphe d'héritage de Arccore::DefaultMemoryAllocator3:
+ Graphe de collaboration de Arccore::DefaultMemoryAllocator3:

Fonctions membres publiques

bool hasRealloc (MemoryAllocationArgs) const override
 Indique si l'allocateur supporte la sémantique de realloc.
 
AllocatedMemoryInfo allocate (MemoryAllocationArgs, Int64 new_size) override
 Alloue de la mémoire pour new_size octets et retourne le pointeur.
 
AllocatedMemoryInfo reallocate (MemoryAllocationArgs, AllocatedMemoryInfo current_ptr, Int64 new_size) override
 Réalloue de la mémoire pour new_size octets et retourne le pointeur.
 
void deallocate (MemoryAllocationArgs, AllocatedMemoryInfo ptr) override
 Libère la mémoire dont l'adresse de base est ptr.
 
Int64 adjustedCapacity (MemoryAllocationArgs, Int64 wanted_capacity, Int64 element_size) const override
 Ajuste la capacité suivant la taille d'élément.
 
size_t guarantedAlignment (MemoryAllocationArgs) const override
 Valeur de l'alignement garanti par l'allocateur.
 
virtual size_t adjustCapacity (size_t wanted_capacity, size_t element_size)=0
 
virtual AllocatedMemoryInfo allocate (MemoryAllocationArgs args, Int64 new_size)
 Alloue de la mémoire pour new_size octets et retourne le pointeur.
 
virtual void * allocate (size_t new_size)=0
 
virtual void deallocate (MemoryAllocationArgs args, AllocatedMemoryInfo ptr)
 Libère la mémoire dont l'adresse de base est ptr.
 
virtual void deallocate (void *ptr)=0
 
virtual size_t guarantedAlignment (MemoryAllocationArgs args) const
 Valeur de l'alignement garanti par l'allocateur.
 
virtual size_t guarantedAlignment ()=0
 
virtual bool hasRealloc (MemoryAllocationArgs args) const
 Indique si l'allocateur supporte la sémantique de realloc.
 
virtual bool hasRealloc () const=0
 
virtual AllocatedMemoryInfo reallocate (MemoryAllocationArgs args, AllocatedMemoryInfo current_ptr, Int64 new_size)
 Réalloue de la mémoire pour new_size octets et retourne le pointeur.
 
virtual void * reallocate (void *current_ptr, size_t new_size)=0
 
- Fonctions membres publiques hérités de Arccore::IMemoryAllocator
virtual ~IMemoryAllocator ()=default
 Détruit l'allocateur.
 
virtual void notifyMemoryArgsChanged (MemoryAllocationArgs old_args, MemoryAllocationArgs new_args, AllocatedMemoryInfo ptr)
 Notifie du changement des arguments spécifiques à l'instance.
 
virtual void copyMemory (MemoryAllocationArgs args, AllocatedMemoryInfo destination, AllocatedMemoryInfo source)
 Copie la mémoire entre deux zones.
 

Attributs privés statiques

static DefaultMemoryAllocator3 shared_null_instance
 

Amis

class ArrayMetaData
 

Description détaillée

Allocateur mémoire via malloc/realloc/free.

TODO: marquer les méthodes comme 'final'.

Définition à la ligne 287 du fichier arccore/src/collections/arccore/collections/IMemoryAllocator.h.

Documentation des fonctions membres

◆ adjustCapacity()

virtual size_t Arccore::IMemoryAllocator::adjustCapacity ( size_t  wanted_capacity,
size_t  element_size 
)
virtual

◆ adjustedCapacity()

Int64 Arccore::DefaultMemoryAllocator3::adjustedCapacity ( MemoryAllocationArgs  args,
Int64  wanted_capacity,
Int64  element_size 
) const
overridevirtual

Ajuste la capacité suivant la taille d'élément.

Cette méthode est utilisée pour éventuellement modifié le nombre d'éléments alloués suivant leur taille. Cela permet par exemple pour les allocateurs alignés de garantir que le nombre d'éléments alloués est un multiple de cet alignement.

Implémente Arccore::IMemoryAllocator3.

Définition à la ligne 154 du fichier MemoryAllocator.cc.

Référencé par TesterMemoryAllocatorV3::adjustedCapacity().

◆ allocate() [1/3]

AllocatedMemoryInfo Arccore::IMemoryAllocator::allocate ( MemoryAllocationArgs  args,
Int64  new_size 
)
virtual

Alloue de la mémoire pour new_size octets et retourne le pointeur.

La sémantique est équivalent à malloc():

  • new_size peut valoir zéro et dans ce cas le pointeur retourné est soit nul, soit une valeur non spécifiée.
  • le pointeur retourné peut être nul si la mémoire n'a pas pu être allouée.

Implémente Arccore::IMemoryAllocator3.

Définition à la ligne 75 du fichier MemoryAllocator.cc.

◆ allocate() [2/3]

AllocatedMemoryInfo Arccore::DefaultMemoryAllocator3::allocate ( MemoryAllocationArgs  args,
Int64  new_size 
)
overridevirtual

Alloue de la mémoire pour new_size octets et retourne le pointeur.

La sémantique est équivalent à malloc():

  • new_size peut valoir zéro et dans ce cas le pointeur retourné est soit nul, soit une valeur spécifique
  • le pointeur retourné peut être nul si la mémoire n'a pas pu être allouée.

Implémente Arccore::IMemoryAllocator3.

Définition à la ligne 127 du fichier MemoryAllocator.cc.

Référencé par TesterMemoryAllocatorV3::allocate().

◆ allocate() [3/3]

virtual void * Arccore::IMemoryAllocator::allocate ( size_t  new_size)
virtual

◆ deallocate() [1/3]

void Arccore::IMemoryAllocator::deallocate ( MemoryAllocationArgs  args,
AllocatedMemoryInfo  ptr 
)
virtual

Libère la mémoire dont l'adresse de base est ptr.

Le pointeur ptr doit avoir été alloué via l'appel à allocate() ou reallocate() de cette instance.

La sémantique de cette méthode équivalente à free() et donc ptr peut être nul auquel cas aucune opération n'est effectuée.

Implémente Arccore::IMemoryAllocator3.

Définition à la ligne 99 du fichier MemoryAllocator.cc.

◆ deallocate() [2/3]

void Arccore::DefaultMemoryAllocator3::deallocate ( MemoryAllocationArgs  args,
AllocatedMemoryInfo  ptr 
)
overridevirtual

Libère la mémoire dont l'adresse de base est ptr.

Le pointeur ptr doit avoir été alloué via l'appel à allocate() ou reallocate() de cette instance.

La sémantique de cette méthode équivalente à free() et donc ptr peut être nul auquel cas aucune opération n'est effectuée.

Implémente Arccore::IMemoryAllocator3.

Définition à la ligne 145 du fichier MemoryAllocator.cc.

Références Arccore::AllocatedMemoryInfo::baseAddress().

Référencé par TesterMemoryAllocatorV3::deallocate().

◆ deallocate() [3/3]

virtual void Arccore::IMemoryAllocator::deallocate ( void *  ptr)
virtual

◆ guarantedAlignment() [1/3]

virtual size_t Arccore::IMemoryAllocator::guarantedAlignment ( )
virtual

◆ guarantedAlignment() [2/3]

size_t Arccore::IMemoryAllocator::guarantedAlignment ( MemoryAllocationArgs  args) const
virtual

Valeur de l'alignement garanti par l'allocateur.

Cette méthode permet de s'assurer qu'un allocateur a un alignement suffisant pour certaines opérations comme la vectorisation par exemple.

S'il n'y a aucune garantie, retourne 0.

Implémente Arccore::IMemoryAllocator3.

Définition à la ligne 120 du fichier MemoryAllocator.cc.

◆ guarantedAlignment() [3/3]

size_t Arccore::DefaultMemoryAllocator3::guarantedAlignment ( MemoryAllocationArgs  args) const
inlineoverridevirtual

Valeur de l'alignement garanti par l'allocateur.

Cette méthode permet de s'assurer qu'un allocateur a un alignement suffisant pour certaines opérations comme la vectorisation par exemple.

S'il n'y a aucune garantie, retourne 0.

Implémente Arccore::IMemoryAllocator3.

Définition à la ligne 312 du fichier arccore/src/collections/arccore/collections/IMemoryAllocator.h.

Référencé par TesterMemoryAllocatorV3::guarantedAlignment().

◆ hasRealloc() [1/3]

virtual bool Arccore::IMemoryAllocator::hasRealloc ( ) const
virtual

◆ hasRealloc() [2/3]

bool Arccore::IMemoryAllocator::hasRealloc ( MemoryAllocationArgs  args) const
virtual

Indique si l'allocateur supporte la sémantique de realloc.

Les allocateurs par défaut du C (malloc/realloc/free) supportent évidemment le realloc mais ce n'est pas forcément le cas des allocateurs spécifiques avec alignement mémoire (comme par exemple posix_memalign).

Réimplémentée à partir de Arccore::IMemoryAllocator3.

Définition à la ligne 65 du fichier MemoryAllocator.cc.

◆ hasRealloc() [3/3]

bool Arccore::DefaultMemoryAllocator3::hasRealloc ( MemoryAllocationArgs  ) const
overridevirtual

Indique si l'allocateur supporte la sémantique de realloc.

Les allocateurs par défaut du C (malloc/realloc/free) supportent évidemment le realloc mais ce n'est pas forcément le cas des allocateurs spécifiques avec alignement mémoire (comme par exemple posix_memalign).

Réimplémentée à partir de Arccore::IMemoryAllocator3.

Définition à la ligne 118 du fichier MemoryAllocator.cc.

Référencé par TesterMemoryAllocatorV3::hasRealloc().

◆ reallocate() [1/3]

AllocatedMemoryInfo Arccore::IMemoryAllocator::reallocate ( MemoryAllocationArgs  args,
AllocatedMemoryInfo  current_ptr,
Int64  new_size 
)
virtual

Réalloue de la mémoire pour new_size octets et retourne le pointeur.

Le pointeur current_ptr doit avoir été alloué via l'appel à allocate() ou reallocate() de cette instance.

La sémantique de cette méthode est équivalente à realloc():

  • current_ptr peut-être nul auquel cas cet appel est équivalent à allocate().
  • le pointeur retourné peut être nul si la mémoire n'a pas pu être allouée.

Implémente Arccore::IMemoryAllocator3.

Définition à la ligne 88 du fichier MemoryAllocator.cc.

◆ reallocate() [2/3]

AllocatedMemoryInfo Arccore::DefaultMemoryAllocator3::reallocate ( MemoryAllocationArgs  args,
AllocatedMemoryInfo  current_ptr,
Int64  new_size 
)
overridevirtual

Réalloue de la mémoire pour new_size octets et retourne le pointeur.

Le pointeur current_ptr doit avoir été alloué via l'appel à allocate() ou reallocate() de cette instance.

La sémantique de cette méthode est équivalente à realloc():

  • current_ptr peut-être nul auquel cas cet appel est équivalent à allocate().
  • le pointeur retourné peut être nul si la mémoire n'a pas pu être allouée.

Implémente Arccore::IMemoryAllocator3.

Définition à la ligne 136 du fichier MemoryAllocator.cc.

Références Arccore::AllocatedMemoryInfo::baseAddress().

Référencé par TesterMemoryAllocatorV3::reallocate().

◆ reallocate() [3/3]

virtual void * Arccore::IMemoryAllocator::reallocate ( void *  current_ptr,
size_t  new_size 
)
virtual

Documentation des fonctions amies et associées

◆ ArrayMetaData

friend class ArrayMetaData
friend

Documentation des données membres

◆ shared_null_instance

DefaultMemoryAllocator3 Arccore::DefaultMemoryAllocator3::shared_null_instance
staticprivate

La documentation de cette classe a été générée à partir des fichiers suivants :