İngilizce dilinde oku

Aracılığıyla paylaş


GC.GetTotalMemory(Boolean) Yöntem

Tanım

Parçalanma hariç yığın boyutunu alır. Örneğin, toplam GC yığın boyutu 100 mb ise ve parçalanma, yani boş nesnelerin kapladığı alan 40 mb'ı kaplarsa, bu API 60 mb'ı bildirir. Parametre, sistemin çöp toplamasına ve nesneleri sonlandırmasına izin vermek için bu yöntemin geri dönmeden önce kısa bir süre bekleyip bekleyemeyeceğini gösterir.

C#
public static long GetTotalMemory(bool forceFullCollection);

Parametreler

forceFullCollection
Boolean

true bu yöntemin geri dönmeden önce çöp toplamanın gerçekleşmesini bekleyebileceğini belirtmek için; aksi takdirde , false.

Döndürülenler

Parçalanma hariç bayt cinsinden yığın boyutu.

Örnekler

Aşağıdaki örnekte, yönetilen bellekte GetTotalMemory ayrılan bayt sayısını almak ve görüntülemek için yönteminin nasıl kullanılacağı gösterilmektedir.

C#
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();
            }
        }
    }
}

Açıklamalar

forceFullCollection parametresi isetrue, bu yöntem geri dönmeden önce kısa bir süre beklerken sistem çöp toplar ve nesneleri son haline getirir. Aralığın süresi, tamamlanan çöp toplama döngülerinin sayısı ve döngüler arasında kurtarılan bellek miktarındaki değişiklik tarafından belirlenen dahili olarak belirtilen bir sınırdır. Çöp toplayıcı tüm erişilemez belleğin toplandığını garanti etmez.

Şunlara uygulanır

Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0