Free, fonction

Libère un bloc de mémoire précédemment alloué par la méthode Alloc au sous-allocateur de cache du runtime d'accès concurrentiel.

_CRTIMP void __cdecl Free(
   void * _PAllocation
);

Paramètres

  • _PAllocation
    Pointeur vers la mémoire précédemment allouée par la méthode Alloc qui sera libérée. Si le paramètre _PAllocation a la valeur NULL, cette méthode l'ignorera et fera l'objet d'un retour immédiat.

Notes

Utilisez le sous-allocateur de mise en cache lorsque vous envisagez de faire plusieurs allocations intercalées avec des désallocations avec un petit jeu de tailles de blocs sur plusieurs threads. Le sous-allocateur est une couche de mise en cache au-dessus du tas C Runtime. Le runtime d'accès concurrentiel crée un sous-allocateur par processeur virtuel dans un planificateur, ainsi qu'un sous-allocateur par thread créé par votre application qui utilise les méthodes d'allocateur.

Une fois que vous avez développé le cache d'un bloc d'une certaine taille, les allocations et les libérations sont possibles sans maintenir les verrous ni même exécuter les barrières de mémoire. Si le cache de taille de bloc dans chaque sous-allocateur est vide, les allocations sont effectuées à partir du tas, et si le cache atteint une certaine taille de bloc, les blocs sont libérés vers le tas C Runtime.

Si votre application utilise une grande quantité de mémoire, vous pouvez manquer de mémoire plus tôt que prévu si vous utilisez le sous-allocateur du cache. C'est parce que les blocs mis en cache dans un sous-allocateur ne sont pas disponibles pour un autre, et il peut y avoir des grandes quantités de mémoire mises en cache dans des sous-allocateurs auxquelles un thread particulier n'a pas accès à un point particulier.

Configuration requise

En-tête : concrt.h

Espace de noms d'accès : Concurrency

Voir aussi

Référence

Concurrency, espace de noms

Alloc, fonction