Gestor de área dinâmica para dados não pode anular memória depois de memória é libertada

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 3073576
Sintomas
O Gestor de área para dados dinâmicos da pilha de fragmentação de baixa (LFH) não pode anular a memória que foi libertada utilizandoHeapFree. Por conseguinte, os bytes privados possam aumentar apesar da memória na pilha de foi libertada.
Mais Informação
O LFH acelera os devolver memória para a pilha de back-end. Quando uma aplicação se encontra num ciclo em que atribui muita memória, em seguida, liberta a memória e, em seguida, repete o processo, o LFH intencionalmente não devolve todos os da memória consolidada. Isto ocorre porque o padrão de atribuição sugere que a aplicação terá de atribuir a memória outra vez brevemente. Por conseguinte, o LFH colocará em cache uma parte do que a aplicação libertada para acelerar a atribuições. Como a aplicação continua o padrão, o LFH vai continuar a memória cache e ocorrerá um aumento de bytes privados.

O ponto principal é que o LFH (e a pilha de geralmente) não garante que quando um bloco de memória é libertado, esse bloco de memória também será objecto de uma anulação. HeapCompactpode ser chamado para indicar a área de dados dinâmicos que pode ser uma boa altura para purgar respectivas caches. Isto pode evitar um aumento de bytes privados. No entanto, o Gestor de área dinâmica para dados ainda pode ignorar o pedido.
Como contornar
Bytes privados medem algo muito diferentes de atribuições de pilha activa. Se tiver de ter controlo forte sobre bytes privados, deve considerar utilizar o VirtualAlloc e VirtualFree APIs.

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 3073576 - Última Revisão: 07/13/2015 21:18:00 - Revisão: 1.0

Windows 8.1, Windows 8.1 Enterprise, Windows 8.1 Pro

  • kbexpertiseadvanced kbtshoot kbsurveynew kbmt KB3073576 KbMtpt
Comentários