Funções de gerenciamento da memória
Este documento descreve as funções de gerenciamento de memória que o Runtime de Simultaneidade fornece para ajudá-lo a alocar e liberar memória de maneira simultânea.
Dica
O Runtime de Simultaneidade fornece um agendador padrão e, portanto, você não precisa criar um em seu aplicativo. Como o Agendador de Tarefas ajuda você a ajustar o desempenho de seus aplicativos, é recomendável que você comece com a PPL (Biblioteca de Padrões Paralelos) ou a Biblioteca de Agentes Assíncronos se você for novo no Runtime de Simultaneidade.
O Runtime de Simultaneidade fornece duas funções de gerenciamento de memória otimizadas para alocar e liberar blocos de memória de maneira simultânea. A função concurrency::Alloc aloca um bloco de memória usando o tamanho especificado. A função concurrency::Free libera a memória alocada por Alloc
.
Observação
As funções Alloc
e Free
dependem umas das outras. Use a função Free
somente para liberar a memória alocada usando a função Alloc
. Além disso, quando você usa a função Alloc
para alocar memória, use apenas a função Free
para liberar essa memória.
Use as funções Alloc
e Free
quando você alocar e liberar um conjunto fixo de tamanhos de alocação a partir de diferentes threads ou tarefas. O Runtime de Simultaneidade armazena em cache a memória alocada do heap do Runtime C. O Runtime de Simultaneidade contém um cache de memória separado para cada thread em execução; portanto, o runtime gerencia a memória sem o uso de bloqueios ou barreiras de memória. Um aplicativo se beneficia mais das funções Alloc
e Free
quando o cache de memória é acessado com maior frequência. Por exemplo, um thread que frequentemente chama Alloc
e Free
beneficia mais do que um thread que chama principalmente Alloc
ou Free
.
Observação
Quando você usa essas funções de gerenciamento de memória e seu aplicativo usa muita memória, o aplicativo pode atingir uma condição de baixa memória mais cedo do que você espera. Como os blocos de memória armazenados em cache por um thread não estão disponíveis para nenhum outro thread, se um thread retiver muita memória, essa memória não estará disponível.
Exemplo
Para obter um exemplo que usa as funções Alloc
e Free
para melhorar o desempenho da memória, consulte Como usar Alloc e Free para melhorar o desempenho da memória.
Confira também
Agendador de Tarefas
Como usar Alloc e Free para melhorar o desempenho da memória