Condividi tramite


Funzioni di gestione della memoria

In questo documento vengono descritte le funzioni di gestione della memoria offerte dal runtime di concorrenza che consentono di allocare e liberare memoria in modo simultaneo.

SuggerimentoSuggerimento

Il runtime di concorrenza fornisce un'utilità di pianificazione predefinita, pertanto non è necessario crearne una nell'applicazione. Poiché l'utilità di pianificazione consente di ottimizzare le prestazioni delle applicazioni, è consigliabile iniziare con la PPL (Parallel Patterns Library) o la Libreria di agenti asincroni se non si ha familiarità con il runtime di concorrenza.

Il runtime di concorrenza fornisce due funzioni di gestione della memoria ottimizzate per allocare e liberare blocchi di memoria in modo simultaneo. La funzione Concurrency::Alloc alloca un blocco di memoria utilizzando le dimensioni specificate. La funzione Concurrency::Free libera la memoria allocata da Alloc.

Nota

Le funzioni Alloc e Free sono dipendenti tra loro. Utilizzare la funzione Free solo per rilasciare la memoria allocata tramite la funzione Alloc. Inoltre, quando si utilizza la funzione Alloc per allocare memoria, utilizzare solo la funzione Free per rilasciare tale memoria.

Utilizzare le funzioni Alloc e Free quando si alloca e libera un set prestabilito di dimensioni di allocazione da attività o thread diversi. Il runtime di concorrenza memorizza nella cache la memoria allocata dall'heap del runtime C. Il runtime di concorrenza mantiene una cache di memoria separata per ogni thread in esecuzione; pertanto, il runtime gestisce la memoria senza l'utilizzo di blocchi o barriere di memoria. Un'applicazione beneficia maggiormente dei vantaggi offerti dalle funzioni Alloc e Free quando l'accesso alla cache di memoria è più frequente. Ad esempio, un thread che chiama frequentemente Alloc e Free trae più vantaggi rispetto a un thread che chiama principalmente Alloc o Free.

Nota

Quando si utilizzano queste funzioni di gestione della memoria e l'applicazione utilizza una grande quantità di memoria, è possibile che nell'applicazione si verifichi una condizione di memoria insufficiente prima del previsto. Poiché i blocchi di memoria memorizzati nella cache da un thread non sono disponibili per un altro thread, se un thread include una grande quantità di memoria, tale memoria non sarà disponibile.

Esempio

Per un esempio in cui vengono utilizzate le funzioni Alloc e Free per migliorare le prestazioni di memoria, vedere Procedura: utilizzare Alloc e Free per migliorare le prestazioni di memoria.

Vedere anche

Attività

Procedura: utilizzare Alloc e Free per migliorare le prestazioni di memoria

Concetti

Utilità di pianificazione (runtime di concorrenza)

Cronologia delle modifiche

Data

Cronologia

Motivo

Luglio 2010

Il contenuto è stato riorganizzato.

Miglioramento delle informazioni.