Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este documento descreve as funções de gerenciamento de memória que o Concurrency Runtime fornece para ajudá-lo a alocar e liberar memória de maneira simultânea.
Sugestão
O Concurrency Runtime fornece um agendador padrão e, portanto, você não é obrigado a criar um em seu aplicativo. Como o Agendador de Tarefas ajuda a ajustar o desempenho de seus aplicativos, recomendamos que você comece com a Biblioteca de Padrões Paralelos (PPL) ou a Biblioteca de Agentes Assíncronos se você for novo no Tempo de Execução de Simultaneidade.
O Concurrency Runtime fornece duas funções de gerenciamento de memória que são 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 que foi alocada pelo Alloc.
Observação
As funções Alloc e Free dependem umas das outras. Use a Free função apenas para liberar a memória que você alocar usando a Alloc função. Além disso, quando você usa a Alloc função para alocar memória, use apenas a Free função para liberar essa memória.
Use as funções Alloc e Free ao alocar e liberar um conjunto fixo de tamanhos de alocação de diferentes threads ou tarefas. O Concurrency Runtime armazena em cache a memória que aloca do heap do C Runtime. O Concurrency Runtime mantém um cache de memória separado para cada thread em execução; Portanto, o tempo de execução gerencia a memória sem o uso de bloqueios ou barreiras de memória. Uma aplicação beneficia-se mais das funções Alloc e Free quando o cache de memória é acessado com mais frequência. Por exemplo, uma thread que chama frequentemente tanto Alloc quanto Free beneficia mais do que uma 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 entrar em uma condição de pouca memória mais cedo do que o esperado. 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 contiver 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.
Ver também
Agendador de Tarefas
Como: Usar Alloc e Free para melhorar o desempenho da memória