Funzione Alloc
Assegna un blocco di memoria di dimensioni specificate dal suballocatore di cache del runtime di concorrenza.
_CRTIMP void * __cdecl Alloc( size_t _NumBytes );
Parametri
- _NumBytes
Numero di byte di memoria da allocare.
Valore restituito
Puntatore alla memoria appena allocata.
Note
Utilizzare il suballocatore della memorizzazione nella cache quando si prevede di eseguire diverse allocazioni alternate alle deallocazioni con un piccolo set di dimensioni di blocco su una serie di thread. Il suballocatore si trova a un livello di memorizzazione nella cache superiore all'heap di runtime C. Il runtime di concorrenza crea un suballocatore per processore virtuale in un'utilità di pianificazione, così come un suballocatore per thread creato dall'applicazione che utilizza i metodi di allocatore.
Una volta compilata una cache di un blocco di determinate dimensioni, le allocazioni e liberazioni sono possibili senza mantenere i blocchi o anche eseguendo barriere della memoria. Se la cache in ogni suballocatore per una dimensione di un blocco è vuota, le allocazioni vengono fatte dall'heap e se la cache ha raggiunto una dimensione determinata per una dimensione di un blocco, i blocchi sono liberi per l'heap di runtime di C.
Se l'applicazione utilizza una grande quantità di memoria è possibile che la memoria si riveli insufficiente prima del previsto in caso di utilizzo del suballocatore di cache. Dipende dal fatto che i blocchi memorizzati nella cache in un suballocatore non sono disponibili per un altro suballocatore e vi può essere molta memoria memorizzata nella cache dei suballocatori a cui un particolare thread non ha accesso in un particolare momento.
Requisiti
Header: concrt.h
Spazio dei nomi: Concurrency