Alloc, fonction

Alloue un bloc de mémoire de la taille spécifiée depuis le sous-allocateur de cache du runtime d'accès concurrentiel.

_CRTIMP void * __cdecl Alloc(    size_t _NumBytes );

Paramètres

  • _NumBytes
    Nombre d'octets de mémoire à allouer.

Valeur de retour

Pointeur vers la mémoire nouvellement allouée.

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

Free, fonction