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 AllocFree 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