Compartir a través de


Funciones de administración de memoria

En este documento se describen las funciones de administración de memoria que el runtime de simultaneidad proporciona para ayudarle a asignar y liberar memoria de manera simultánea.

SugerenciaSugerencia

El runtime de simultaneidad proporciona un programador predeterminado y, por tanto, no es necesario crear uno en la aplicación.Dado que el programador de tareas ayuda a ajustar el rendimiento de las aplicaciones, se recomienda que comience con Parallel Patterns Library (PPL) o Biblioteca de agentes asincrónicos si no ha usado antes el runtime de simultaneidad.

El Runtime de simultaneidad proporciona dos funciones de administración de memoria que se optimizan para asignar y liberar los bloques de memoria de manera simultánea.El concurrency::Alloc función asigna un bloque de memoria utilizando el tamaño especificado.El concurrency::Free función libera la memoria asignada por Alloc.

[!NOTA]

Las funciones Free y Alloc confían la una en la otra.Use la función Free solo para liberar memoria que se asigna utilizando la función Alloc.Asimismo, cuando se usa la función Alloc para asignar memoria, use solo la función Free para liberar dicha memoria.

Utilice las funciones Free y Alloc cuando asigna y libera un conjunto fijo de tamaños de asignación de subprocesos o tareas diferentes.El Runtime de simultaneidad almacena en caché la memoria que asigna del montón del Runtime de C.El Runtime de simultaneidad contiene una memoria caché independiente para cada subproceso; por consiguiente, el runtime administra la memoria sin el uso de bloqueos ni barreras de memoria.Una aplicación se beneficia más de las funciones Free y Alloc cuando se tiene acceso a la memoria caché con más frecuencia.Por ejemplo, un subproceso que llama con frecuencia a Alloc y Free es más beneficioso que un subproceso que llama principalmente a Alloc o Free.

[!NOTA]

Cuando se usan estas funciones de administración de memoria y la aplicación usa mucha memoria, la aplicación puede producir un problema de memoria insuficiente antes de lo que se espera.Dado que los bloques de memoria que un subproceso almacena en memoria caché no están disponibles para otro subproceso, si un subproceso contiene mucha memoria, esa memoria no está disponible.

Ejemplo

Para obtener un ejemplo que utiliza funciones Free y Alloc para mejorar el rendimiento de la memoria, vea Cómo: Usar Alloc y Free para mejorar el rendimiento de la memoria.

Vea también

Tareas

Cómo: Usar Alloc y Free para mejorar el rendimiento de la memoria

Conceptos

Programador de tareas (Runtime de simultaneidad)