Sobes.tech
Junior — Middle

Hogyan kezelik és szervezik a memóriát a C# környezetben?

sobes.tech MI

Válasz az MI-től

C#-ban a memória kezelés automatikusan történik a Garbage Collector (GC) segítségével. A memória két fő területre oszlik:

  • Verem (Stack) — helyi változókat és metódus paramétereket tárol. A memória nagyon gyorsan foglalódik és szabadul fel a LIFO elv szerint.
  • Heap (Heap) — olyan objektumokat és adatokat tárol, amelyek hosszabb ideig élnek, mint a metódus futási ideje. A heap memória kezelését a szemétgyűjtő végzi.

A szemétgyűjtő időszakosan felszabadítja azokat a memóriákat, amelyeket már nem használnak az objektumok, és amelyekhez már nincs referencia. Ez megkönnyíti a fejlesztőt a memória manuális kezelése alól, és csökkenti a memória szivárgás kockázatát.

Példa egy objektum létrehozására a heap-en:

class Program
{
    static void Main()
    {
        Person p = new Person(); // az objektum a heap-en jön létre
    }
}

class Person
{
    public string Name { get; set; }
}

Itt a Person objektum a heap-en jön létre, míg a p változó a veremben, és erre az objektumra hivatkozik.