Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

GC.GetTotalMemory-Methode: (Boolean)

 

Veröffentlicht: Oktober 2016

Ruft einen Schätzwert für die reservierte Anzahl von Bytes ab. Ein Parameter gibt an, ob diese Methode vor der Rückgabe eine kurze Zeit warten kann, damit das System die Garbage Collection durchführen und Objekte finalisieren kann.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

public static long GetTotalMemory(
	bool forceFullCollection
)

Parameter

forceFullCollection
Type: System.Boolean

true, um anzugeben, dass diese Methode vor der Rückgabe auf die Garbage Collection warten kann, andernfalls false.

Rückgabewert

Type: System.Int64

Die bestmögliche Annäherung an die Anzahl der derzeit im verwalteten Speicher belegten Bytes.

Wenn der forceFullCollection -Parameter ist true, diese Methode vor der Rückgabe ein kurzes Intervall wartet, während das System Garbage Collection durchführt und Objekte finalisiert. Die Dauer des Intervalls ist ein intern angegebenen Grenzwert abhängig von dem Zyklen der Garbage Collection abgeschlossen und die Änderung hinsichtlich der Menge Arbeitsspeicher zwischen Zyklen. Der Garbage Collector garantiert nicht, dass sämtlicher nicht zugänglicher Speicher freigegeben wird.

Im folgenden Beispiel wird veranschaulicht, wie die GetTotalMemory Methode zum Abrufen und Anzeigen der Anzahl der derzeit im verwalteten Speicher reservierten Bytes.

using System;

namespace GCCollectIntExample
{
    class MyGCCollectClass
    {
        private const long maxGarbage = 1000;

        static void Main()
        {
            MyGCCollectClass myGCCol = new MyGCCollectClass();

            // Determine the maximum number of generations the system
	    // garbage collector currently supports.
            Console.WriteLine("The highest generation is {0}", GC.MaxGeneration);

            myGCCol.MakeSomeGarbage();

            // Determine which generation myGCCol object is stored in.
            Console.WriteLine("Generation: {0}", GC.GetGeneration(myGCCol));

            // Determine the best available approximation of the number 
	    // of bytes currently allocated in managed memory.
            Console.WriteLine("Total Memory: {0}", GC.GetTotalMemory(false));

            // Perform a collection of generation 0 only.
            GC.Collect(0);

            // Determine which generation myGCCol object is stored in.
            Console.WriteLine("Generation: {0}", GC.GetGeneration(myGCCol));

            Console.WriteLine("Total Memory: {0}", GC.GetTotalMemory(false));

            // Perform a collection of all generations up to and including 2.
            GC.Collect(2);

            // Determine which generation myGCCol object is stored in.
            Console.WriteLine("Generation: {0}", GC.GetGeneration(myGCCol));
            Console.WriteLine("Total Memory: {0}", GC.GetTotalMemory(false));
            Console.Read();
        }

        void MakeSomeGarbage()
        {
            Version vt;

            for(int i = 0; i < maxGarbage; i++)
            {
                // Create objects and release them to fill up memory
		// with unused objects.
                vt = new Version();
            }
        }
    }
}

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 1.1
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: