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.
Suggerimento |
---|
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. |