Compartir a través de


Alloc (Función)

Asigna un bloque de memoria del tamaño especificado del subasignador de almacenamiento en caché del runtime de simultaneidad.

_CRTIMP void * __cdecl Alloc(    size_t _NumBytes );

Parámetros

  • _NumBytes
    Número de bytes de memoria que se van a asignar.

Valor devuelto

Puntero a la memoria recién asignada.

Comentarios

Use el subasignador de almacenamiento en caché cuando espera realizar varias asignaciones intercaladas con desasignaciones en un conjunto pequeño de tamaños de bloque en varios subprocesos. El subasignador es un nivel de almacenamiento en caché sobre el montón en tiempo de ejecución de C. El runtime de simultaneidad crea un subasignador por procesador virtual en un programador, así como un subasignador por subproceso creado por la aplicación que usa los métodos de asignador.

Cuando haya creado una memoria caché de un determinado bloque de tamaño, las asignaciones y liberaciones son posibles sin retener los bloqueos o incluso ejecutando barreras de memoria. Si la memoria caché de cada subasignador de un tamaño de bloque está vacía, las asignaciones se realizan desde el montón, y si la memoria caché ha alcanzado cierto tamaño para el tamaño de un bloque, los bloques se liberan en el montón del runtime de C.

Si su aplicación usa una cantidad de memoria grande, es posible que se quede sin memoria antes de lo esperado si usa el subasignador de almacenamiento en caché. Esto es porque los bloques almacenados en memoria caché en un subasignador no están disponibles para otro, y puede haber gran cantidad de memoria almacenada en caché en subasignadores a la que un subproceso determinado no tiene ningún acceso en un momento determinado.

Requisitos

Encabezado: concrt.h

Espacio de nombres: Simultaneidad

Vea también

Referencia

Espacio de nombres de simultaneidad

Free (Función)