Speicherverwaltungsfunktionen
In diesem Dokument werden die Speicherverwaltungsfunktionen beschrieben, die die Parallelitäts-Runtime bereitstellt, um Arbeitsspeicher gleichzeitig zuzuweisen und freizugeben.
Tipp
Die Concurrency Runtime stellt einen Standardplaner bereit. Sie müssen daher keinen in Ihrer Anwendung erstellen. Da der Aufgabenplaner Ihnen dabei hilft, die Leistung Ihrer Anwendungen zu optimieren, empfehlen wir, mit der Parallel Patterns Library (PPL) oder der asynchronen Agents-Bibliothek zu beginnen, wenn Sie mit der Parallelitätslaufzeit noch nicht vertraut sind.
Die Parallelitätslaufzeit bietet zwei Speicherverwaltungsfunktionen, die für das Zuweisen und Freigeben von Speicherblöcken auf gleichzeitige Weise optimiert sind. Die Parallelität::Alloc-Funktion weist mithilfe der angegebenen Größe einen Speicherblock zu. Die Parallelität::Free-Funktion gibt den Speicher frei, der von Alloc
.
Hinweis
Die Alloc
Funktionen und Free
Funktionen verlassen sich gegenseitig. Verwenden Sie die Free
Funktion nur, um Arbeitsspeicher freizugeben, den Sie mithilfe der Alloc
Funktion zuweisen. Wenn Sie die Alloc
Funktion verwenden, um Arbeitsspeicher zuzuweisen, verwenden Sie nur die Free
Funktion, um diesen Speicher freizugeben.
Verwenden Sie die Alloc
Funktionen, Free
wenn Sie einen festen Satz von Zuordnungsgrößen aus verschiedenen Threads oder Aufgaben zuordnen und freigeben. Der Parallelitäts-Runtime-Speicher wird vom C-Runtime-Heap zwischengespeichert. Die Parallelitätslaufzeit enthält einen separaten Speichercache für jeden ausgeführten Thread. Daher verwaltet die Laufzeit Arbeitsspeicher ohne Die Verwendung von Sperren oder Speicherbarrieren. Eine Anwendung profitiert mehr von den Alloc
Funktionen, Free
wenn häufiger auf den Speichercache zugegriffen wird. Ein Thread, der häufig beide Alloc
Aufrufe und Free
Vorteile mehr als einen Thread aufruft, der in erster Linie aufruft Alloc
oder Free
.
Hinweis
Wenn Sie diese Speicherverwaltungsfunktionen verwenden und Ihre Anwendung viel Arbeitsspeicher verwendet, kann die Anwendung früher als erwartet eine Zustand mit geringem Arbeitsspeicher eingeben. Da die Speicherblöcke, die von einem Thread zwischengespeichert werden, für keinen anderen Thread verfügbar sind, ist dieser Speicher nicht verfügbar, wenn ein Thread viel Arbeitsspeicher enthält.
Beispiel
Ein Beispiel, in dem die Alloc
Free
Speicherleistung verbessert wird, finden Sie unter How to: Use Alloc and Free to Improve Memory Performance.
Siehe auch
Aufgabenplanung
Vorgehensweise: Verbessern der Arbeitsspeicherleistung mithilfe von Alloc und Free