Free-Funktion
Gibt einen Speicherblock frei, der zuvor mit der Alloc-Methode der Unterbelegungsfunktion für die Zwischenspeicherung der Concurrency Runtime reserviert wurde.
_CRTIMP void __cdecl Free(
void * _PAllocation
);
Parameter
- _PAllocation
Ein Zeiger auf den Arbeitsspeicher, der zuvor mit der Alloc-Methode reserviert wurde und jetzt freigegeben werden soll. Wenn der _PAllocation-Parameter auf den Wert NULL festgelegt wurde, ignoriert diese Methode den Parameter und kehrt sofort zurück.
Hinweise
Verwenden Sie die Zwischenspeicher-Unterbelegungsfunktion, wenn Sie erwarten, dass mehrere Zuordnungen mit Zuordnungsaufhebungen mit einem kleinen Satz von Blockgrößen für eine Reihe von Threads durchsetzt werden. Die Unterbelegungsfunktion ist eine Zwischenspeicherebene über dem C-Laufzeitheap. Die Concurrency Runtime erstellt eine Unterbelegungsfunktion pro virtuellem Prozessor in einem Planer sowie eine Unterbelegungsfunktion pro Thread, der von der Anwendung erstellt wurde und die Belegungsfunktionen verwendet.
Sobald Sie einen Cache mit einem Block bestimmter Größe aufgebaut haben, sind Reservierungen und Freigaben ohne Sperren und ohne das Ausführen von Arbeitsspeicherbarrieren möglich. Wenn der Cache in jeder Unterbelegungsfunktion für eine Blockgröße leer ist, werden Zuordnungen vom Heap gemacht, und wenn der Cache eine bestimmte Größe für eine Blockgröße erreicht hat, sind die Blöcke für den C-Laufzeitheap frei.
Wenn die Anwendung viel Arbeitsspeicher benötigt, stellen Sie möglicherweise fest, dass Sie früher als erwartet nicht mehr genügend Arbeitsspeicher zur Verfügung haben, wenn Sie die Unterbelegungsfunktion für die Zwischenspeicherung verwenden. Dies ist, da in einer Unterbelegungsfunktion zwischengespeicherte Blöcke einander nicht zur Verfügung stehen und es möglicherweise große in Unterbelegungsfunktionen zwischengespeicherte Arbeitsspeicher gibt, für die ein bestimmter Thread an einem bestimmten Punkt keinen Zugriff hat.
Anforderungen
Header: concrt.h
Namespace: Concurrency