Gestore di heap non può liberare memoria dopo la liberazione di memoria

IMPORTANTE: il presente articolo è stato tradotto tramite un software di traduzione automatica di Microsoft ed eventualmente revisionato dalla community Microsoft tramite la tecnologia CTF (Community Translation Framework) o da un traduttore professionista. Microsoft offre articoli tradotti manualmente e altri tradotti automaticamente e rivisti dalla community con l’obiettivo di consentire all'utente di accedere a tutti gli articoli della Knowledge Base nella propria lingua. Tuttavia, un articolo tradotto automaticamente, anche se rivisto dalla community, non sempre è perfetto. Potrebbe contenere errori di vocabolario, di sintassi o di grammatica. Microsoft declina ogni responsabilità per imprecisioni, errori o danni causati da una traduzione sbagliata o dal relativo utilizzo da parte dei clienti. Microsoft aggiorna frequentemente il software e gli strumenti di traduzione automatica per continuare a migliorare la qualità della traduzione.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 3073576
Sintomi
Il gestore di heap ridotta frammentazione dell'Heap (LFH) non può liberare memoria liberata utilizzandoHeapFree. Byte privati possono pertanto aumentare anche se è stata liberata la memoria nell'heap.
Informazioni
Il LFH Limita memoria restituito all'heap di back-end. Quando un'applicazione è in un ciclo in cui è possibile alloca grandi quantità di memoria, quindi libera la memoria e quindi ripete il processo, il LFH intenzionalmente non restituisce tutta la memoria vincolata. Ciò si verifica perché il criterio di allocazione suggerisce che l'applicazione dovrà allocare la memoria tra breve. Di conseguenza, il LFH memorizza nella cache una parte dell'applicazione quali liberata a velocizzare le allocazioni. L'applicazione continua la serie, il LFH continuerà a memoria cache e si verificherà un aumento dei byte privati.

Il punto principale è che il LFH (heap e in genere) non garantisce che, quando un blocco di memoria viene liberato, blocco di memoria verrà anche essere oggetto di disimpegno. HeapCompactpuò essere chiamato per indicare all'heap potrebbe non essere un tempo utile per svuotare i cache. Questo può evitare un aumento dei byte privati. Tuttavia, ancora il gestore degli heap può ignorare la richiesta.
Workaround
Byte privati misurano molto diverso dalle allocazioni di heap attivi. Se è necessario disporre di maggiore controllo sui byte privati, è necessario ricorrere al VirtualAlloc e VirtualFree API.

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 3073576 - Ultima revisione: 07/13/2015 21:17:00 - Revisione: 1.0

Windows 8.1, Windows 8.1 Enterprise, Windows 8.1 Pro

  • kbexpertiseadvanced kbtshoot kbsurveynew kbmt KB3073576 KbMtit
Feedback