Anwendungsbeispiel für das Hinzufügen und Entfernen von Speicherdruck

Aktualisiert: November 2007

In diesem Beispiel wird die Interoperation von verwalteter Garbage Collection mit nicht verwaltetem Code veranschaulicht.

Informationen zur Verwendung der Beispiele finden Sie unter den folgenden Themen:

Download sample

So erstellen Sie das Beispiel mithilfe der Eingabeaufforderung

  1. Öffnen Sie das Eingabeaufforderungsfenster, und navigieren Sie zu einem der sprachspezifischen Unterverzeichnisse im Verzeichnis GCDemo. Informationen zu erforderlichen Einstellungen sowie zur SDK-Eingabeaufforderung finden Sie unter Gewusst wie: Festlegen der Beispieleinstellungen.

  2. Geben Sie je nach verwendeter Programmiersprache msbuild GCDemoCS.sln bzw. msbuild GCDemoVB.sln ein.

So erstellen Sie das Beispiel mithilfe von Visual Studio

  1. Öffnen Sie Windows Explorer, und navigieren Sie zu einem der sprachspezifischen Unterverzeichnisse im Verzeichnis GCDemo.

  2. Doppelklicken Sie je nach verwendeter Programmiersprache auf die Datei GCDemoCS.sln bzw. GCDemoVB.sln, um die Datei in Visual Studio zu öffnen.

  3. Wählen Sie im Menü Erstellen die Option Projektmappe erstellen aus.

So führen Sie das Beispiel aus

  • Öffnen Sie das Eingabeaufforderungsfenster, und navigieren zu dem Verzeichnis, das die neue ausführbare Datei enthält.

Anforderungen

Für diese Beispiele sind Windows-Header erforderlich. Diese sind verfügbar, wenn Sie das Projekt über Microsoft Visual Studio 2005 oder die Visual Studio 2005-Eingabeaufforderung erstellen bzw. das Platform SDK installiert und in einem Includepfad angegeben haben.

Hinweise

In diesem Beispiel werden die neue AddMemoryPressure-Methode und die neue RemoveMemoryPressure-Methode der GC-Klasse veranschaulicht. Mit diesen Methoden kann das Muster der Garbage Collection-Strategie für Auflistungen der Generation 0 (null) geändert werden. Diese sollten verwendet werden, um dem Garbage Collector (GC) einen Hinweis zu geben, wenn die Anzahl der zugeordneten, nicht verwalteten Ressourcen deutlich höher ist als die Anzahl der verwalteten Speicheransprüche für dieselben Ressourcen. Ohne diesen Hinweis erkennt der Garbage Collector den nicht verwalteten Speicherplatz nicht und verfolgt daher ggf. eine weniger optimale Strategie.

Führen Sie einfach das Beispiel aus, und achten Sie auf die Anzahl der erfolgreichen Zuordnungen mit und ohne Speicherdruck. (Sie werden bemerken, dass die Zuordnungen erfolgreicher sind, wenn Sie den Speicherdruck entsprechend erhöhen.) Achten Sie außerdem auf den Effekt, den der erhöhte Speicherdruck auf die Anzahl der ausgeführten Auflistungen der Generation 0 (null) hat. Hier zeigt sich, dass der Garbage Collector mehr Auflistungen vornimmt, wenn der Speicherdruck erhöht wird.

Denken Sie immer daran, dass der Speicherdruck um denselben Wert wieder vermindert werden muss, um den er erhöht wurde.