Prügikorjaja

Autor: Louise Ward
Loomise Kuupäev: 5 Veebruar 2021
Värskenduse Kuupäev: 1 Juuli 2024
Anonim
Prügikorjaja - Tehnoloogia
Prügikorjaja - Tehnoloogia

Sisu

Definitsioon - mida tähendab prügikoguja?

Prügikoguja on tarkvaraosa, mis täidab automaatset mäluhaldust. Selle ülesanne on vabastada kasutamata mälu ja tagada, et ükski mälu ei vabaneks selle kasutamise ajal. Mõnes keeles, näiteks Java ja .NET keeles, on automaatne prügivedu, samas kui teistes, näiteks C / C ++, on programmeerijal vaja mälu käsitsi hallata.


Sissejuhatus Microsoft Azure'i ja Microsoft Cloud | Kogu selle juhendi kaudu saate teada, mis on pilvandmetöötlus ja kuidas Microsoft Azure aitab teil pilvest rännata ja oma ettevõtet juhtida.

Techopedia selgitab prügikogujat

Prügikoristamist tutvustas esmakordselt Lispi looja John McCarthy, et hõlbustada Lispi keelega töötamisel käsitsi mäluhaldust.

Kolm peamist tehnikat, mida prügikoguja kasutab automaatse mäluhalduse teostamiseks, on järgmised:

  • Viite loendamine - viide igale objektile loendatakse loendusmuutuja abil. Kui loendur jõuab nullini, tähendab see, et eset pole enam vaja ja seega võetakse see ringlusse.
  • Märgistamine ja pühkimine - kõigi juurdepääsetavate objektide rekursiivne läbimine toimub kõigil andmepiirkondadel ja juurdepääsetavad objektid tähistatakse. Seejärel võetakse märgistamata objektid ringlusse.
  • Peatamine ja kopeerimine - mäluhunnik jaguneb kaheks osaks: objekte sisaldav osa ja tühi osa, kuhu objektid edastatakse (kopeeritakse), kui leitakse, et need on märgistatud. Esimese jaotise märgistamata objektid võetakse selle tühjendamise teel taaskasutusse.

Kui osutile / objektile määratud mäluplokk on vabastatud, tuleb osuti / objekt nullida; vastasel juhul ripub see, st osutab kehtetule mäluplokile.


Prügivedu aitab vähendada vigu ja turvariske, mis on põhjustatud rippuvast osutist ja mälulekke probleemidest.

Prügikoguja kasutamise miinusteks on ressursside ja jõudluse lisakulu. Prügivedaja käitamine võib süsteemi ka aeglustada ja seega selle jõudlust vähendada.