Itthon Fejlesztés Mi az a hulladékgyűjtés (gc)? - meghatározás a techopedia alapján

Mi az a hulladékgyűjtés (gc)? - meghatározás a techopedia alapján

Tartalomjegyzék:

Anonim

Meghatározás - Mit jelent a szemétgyűjtés (GC)?

A szemétszedés (GC) az automatikus memóriakezelés és a halomelosztás dinamikus megközelítése, amely feldolgozza és azonosítja az elhalt memória blokkokat, és újból felhasználja a tárolást. A szemétszedés elsődleges célja a memóriaszivárgások csökkentése.

A GC megvalósításához három elsődleges megközelítésre van szükség, az alábbiak szerint:

  • Jelölés és söpörés - A memória elfogyásakor a GC megkeresi az összes elérhető memóriát, majd visszanyeri a rendelkezésre álló memóriát.
  • Referenciaszámlálás - Az allokált objektumok tartalmazzák a hivatkozási szám referenciaszámát. Ha a memória száma nulla, az objektum szemét lesz, majd megsemmisül. A felszabadult memória visszatér a memória-halomhoz.
  • Másolás gyűjtemény - Két memóriapartíció van. Ha az első partíció megtelt, a GC megkeresi az összes hozzáférhető adatszerkezetet, és másolja a második partícióba, a memóriát a GC folyamat után tömöríti és folyamatos szabad memóriát tesz lehetővé.

Néhány programozási nyelv és a beépített GC-vel rendelkező platformok (pl. Java, Lisp, C # és .Net) önkezelő memóriaszivárgások, lehetővé téve a hatékonyabb programozást.

A Techopedia elmagyarázza a szemétgyűjtést (GC)

A szemetesgyűjtés dinamikus megközelítése az automatikus halomelosztáshoz olyan általános és költséges hibákat céloz meg, amelyek észlelés hiányában gyakran valós programhibákat eredményeznek.

Mivel ezeket nehéz azonosítani és javítani, az allokációs hibák költségesek. Ennélfogva sok ember a szemétgyűjtést alapvető nyelvi funkciónak tekinti, amely megkönnyíti a programozó munkáját az alacsonyabb kézi halomelosztási kezeléssel. A GC azonban nem tökéletes, és a következő hátrányokat kell figyelembe venni:

  • A memória felszabadításakor a GC számítási erőforrásokat fogyaszt.
  • A GC folyamata kiszámíthatatlan, szórványos munkamenet-késleltetéseket eredményezve.
  • Ha a nem használt objektumhivatkozásokat nem helyezi el kézzel, a GC logikai memóriaszivárogokat okoz.
  • A GC nem mindig tudja, mikor kell feldolgozni a modern asztali számítógépek virtuális memória környezetében.
  • A GC-folyamat gyenge kölcsönhatásban van a gyorsítótárral és a virtuális memória rendszerekkel, ami teljesítmény-hangolási nehézségeket okoz.
Ezt a meghatározást az általános programozás keretében írták meg
Mi az a hulladékgyűjtés (gc)? - meghatározás a techopedia alapján