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.