Sakupljanje smeća (računarstvo): razlika između inačica

Izbrisani sadržaj Dodani sadržaj
Uršul (razgovor | doprinosi)
Nema sažetka uređivanja
Uršul (razgovor | doprinosi)
Nema sažetka uređivanja
Redak 1:
'''Skupljanje smeća''' (eng. ''garbage collection'', kratica GC) je oblik automatskog [[upravljanje memorijom|upravljanja memorijom]]. Skupljač smeća (eng. ''garbage collector'') ili kraće skupljač (eng. ''collector'') pokušava vratiti u uporabljiv oblik [[smeće (računalstvo)|smeće]] ili [[objekt (računalstvo)|objekte]] koje [[računalni program]] više ne rabi. [[John McCarthy (računalni znanstvenik)|John McCarthy]] je otkrio ovo oko 1959. godine da bi riješio probleme [[Lisp]]a.<ref>{{cite web|url=http://portal.acm.org/citation.cfm?id=367177.367199 |title=Recursive functions of symbolic expressions and their computation by machine |publisher=Portal.acm.org |date= |accessdate=29 March 2009}}</ref><ref>{{cite web|url=http://www-formal.stanford.edu/jmc/recursive.html|title=Recursive functions of symbolic expressions and their computation by machine, Part I|accessdate=29 May 2009}}</ref>
Ovime se oslobađa memoriju koja više nije potrebna. <ref name="demisticirani9">[http://free-zg.htnet.hr/jsribar/demistif.pdf Motik, Šribar: Demistificirani C++, 2. izdanje, str. 9]</ref> Ova složena funkcija<ref name="demisticirani2">[http://free-zg.htnet.hr/jsribar/demistif.pdf Demistificirani C++, 2. izdanje, str. 2]</ref> potrebna je jer se tijekom izvođenja programa [[curenje memorije|raspoloživa memorija smanjuje]] za preostali dio programa koji se ima izvršiti.<ref name="demisticirani9"/> Kod programa gdje ovo sustav ne rješava sâm, sustavu se mora kvalitetno zadati kad osloboditi memoriju, jer u suprotnom [[uništenje objekta (računalstvo)|uništit će se objekt]] koji bi se poslije mogao pokazati potrebnim.<ref name="demisticirani9"/> Obije pojave, i memorijsko curenje i uništenje objekta čestim su uzrokom kad program ili pak cijelo računalo "zablokira".
 
Danas su ovi mehanizmi različito zastupljeni kod programa. [[Java (programski jezik)|Java]] taj mehanizam ima ugrađen i sâm se pokreće, ovisno o potrebi. <ref name="demisticirani9"/> Kod [[C++]]-a ovo nije ugrađeno u sustav, no postoje [[Knjižnica (računalstvo)|knjižnice]] (i besplatne i komercijalne) koje to ugrađuju u sustav.<ref name="demisticirani9"/>