Azərbaycan  AzərbaycanDeutschland  DeutschlandLietuva  Lietuvaශ්‍රී ලංකාව  ශ්‍රී ලංකාවTürkiyə  Türkiyə
Pagalba
www.datawiki.lt-lt.nina.az
  • Pradžia

Šiam straipsniui ar jo daliai trūksta išnašų į patikimus šaltinius Jūs galite padėti Vikipedijai pridėdami tinkamas išna

Šiukšlių surinktuvas

  • Pagrindinis puslapis
  • Šiukšlių surinktuvas
Šiukšlių surinktuvas
www.datawiki.lt-lt.nina.azhttps://www.datawiki.lt-lt.nina.az
   Šiam straipsniui ar jo daliai trūksta išnašų į patikimus šaltinius.
Jūs galite padėti Vikipedijai pridėdami tinkamas išnašas su šaltiniais.

Šiukšlių surinktuvas (angl. garbage collector) kai kurių programavimo kalbų (Java, C#) vykdomosios sistemos dalis, automatiškai naikinanti vykdomojo kodo nebepasiekiamus objektus. Nepasiekiami objektai gali turėti vidinių nuorodų vienas į kitą; teoriškai tai neapsaugo jų nuo panaikinimo, tačiau prasčiau parašyti surinkikliai gali nesugebėti to padaryti, sukeldami atminties nutekėjimą. Šiukšlių surinkimas – programavimo sąvoka, reiškianti automatizuotą atminties valdymą.

Prieš sunaikindamas objektą, surinktuvas iškviečia to objekto užbaigiklį.

Surinktuvų tipai

Klasikinis šiukšlių surinktuvas savo darbo metu pristabdo vykdomą pagrindinę programą. Kai kada (tarkim, žaidimuose) tokios pauzės nepriimtinos. Tuomet naudojamas inkrementinis surinktuvas, kuris dirba nuolat, šiek tiek sulėtindamas pagrindinės programos vykdymo greitį. Daugiaprocesorinėse sistemose dar gali būti naudojamas lygiagretus surinktuvas, kuris savo darbui užima vieną iš procesorių, palikdamas kitus vykdomai programai. Straipsnio rašymo metu žinomi inkrementiniai ir lygiagretūs surinkėjai dirba lėčiau nei klasikiniai, todėl juos naudoti be reikalo neverta.

Laiko momentas, kuomet bus sunaikintas objektas (taip pat ir kada bus iškviestas jo užbaigiklis) paprastai nėra determinuotas netgi tada, kai pati kalba turi metodus surinktuvui sužadinti (kaip System.gc() Java kalboje). Tokie metodai laikomi „rekomendaciniais“, ir virtuali mašina jų paisyti neprivalo.

Nuskaitymo principai

Šiukšlių surinktuvas peržiūri visus pasiekiamus objektus (tuos į kurios tebeegzistuoja nuorodos) ir nenaudoja laiko atmesti nepasiekiamiems (į kuriuos nuorodų jau nebėra). Todėl paprastai neverta nenaudojamų objektų saugoti podėliuose, buferiuose, tikintis juos panaudoti pakartotinai - „juodai dienai“ susikaupę objektai surinktuvo darbą gali sulėtinti daugiau nei reikia laiko naujiems prireikus sukurti. Tokie dalykai tikslingi tik jei objektai labai dideli, susiję su kitais resursais (duomenų bazės jungtimis ir pan), sukūrimo algoritmas labai sudėtingas arba objektų kaupiama nedaug. Objektus kaupti pakartotinam panaudojimui verta jei yra labai daug procesorių - surinktuvai dažnai neefektyvūs su daug procesorių ir svarbu juos sužadinti kuo rečiau.

Generacijos

Dauguma naujai sukurtų objektų egzistuoja trumpai bet nedidelė jų dalis gyvena daug ilgiau. Dabartiniai surinktuvai dažnai optimizuojami išskiriant „jaunos“ ir „senos“ generacijos sritis. Nauji objektai pirmiausia kuriami jaunos generacijos srityje kuri kiekvienos surinkimo sesijos metu ištuštinama beveik visa. Išlikę objektai perkeliami į senos generacijos sritį kuriai surinkimo operaciją galima atlikti daug rečiau. Kartais būna dar trečia „nuolatinės generacijos“ (angl. permanent generation) sritis kurios objektai negali būti pašalinti kol apskritai veikia virtuali mašina (sisteminės klasės ir pan).

Atminties fragmentacija

Ilgiau dirbant, iškyla atminties fragmentacijos problema: skiriant vietą naujiems objektams, „raikoma“ nuo ištisinės atminties dalies, tačiau atlaisvinus laisvas tampa tik to objekto naudotas palyginus nedidelis fragmentas. Ilgiau padirbus, atmintis gali likti sudalyta į daug nedidelių salelių, kurių nebus galima panaudoti prireikus vietos didesniam naujam objektui. Atminties fragmentacijos problema sprendžiama įvairiai (paprasčiausiu atveju – pritrūkus vietos objektai „perstumdomi“, taip sukuriant reikiamo didumo sritį). Siekiant sumažinti fragmentaciją kartais išskiriama didesnė nei reikia atminties sritis (pavyzdžiui, dydis baitais visada kartotinis aštuoniems), kad ją atlaisvinus būtų lengviau panaudoti antrą kartą.

Paskirstytas šiukšlių surinktuvas

Paskirstytas surinktuvas (angl. distributed garbage collector) reikalingas kuomet programa susideda iš skirtinguose kompiuteriuose vykdomų ir tik per tinklą sąveikaujačių dalių. Serveris kliento prašymu gali sukurti nuotolinį objektą ir perduoti jo nuorodą klientui, tačiau nėra akivaizdu, kiek ilgai jis turi tą sukurtą nuotolinį objektą saugoti (kada klientui jo tikrai daugiau nebeprireiks). Paskirstytas surinktuvas paprastai remiasi nuomos laiko principu. Klientas, gavęs iš serverio nuotolinio objekto nuorodą, prašo (siūsdamas specialią žinutę) objektą saugoti norimą laiko trukmę. Serveris atsakydamas siunčia „nuomos suteikimo“ žinutę, pranešdamas, kiek ilgai jis apsiima saugoti objektą (suteiktas saugojimo laikas gali būti trumpesnis nei prašytas). Jei šiam laikui besibaigiant objektas vis dar reikalingas, klientas siunčia naują prašymą suteikti nuomą. Jei kliento programa natūraliai arba avariniu būdu užsibaigia, kitose sistemos dalyse saugomi susiję objektai tiesiog pašalinami pasibaigus nuomos laikui. Kartais būna specialios žinutės jog objektas nebereikalingas, tačiau jas naudoti sunku nes realiame tinkle žinučių gavimo tvarka nebūtinai lygi jų siuntimo tvarkai.

Įvairūs šiukšlių surinktuvai pamažu tampa svarbia fundamentalių informatikos tyrimų sritimi, kuriai daug padeda pastaruoju metu atsiradusios atviro kodo Java ir kitos virtualios mašinos.[reikalingas šaltinis]

Autorius: www.NiNa.Az

Išleidimo data: 24 Lie, 2025 / 18:41

vikipedija, wiki, lietuvos, knyga, knygos, biblioteka, straipsnis, skaityti, atsisiųsti, nemokamai atsisiųsti, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, pictu, mobilusis, porn, telefonas, android, iOS, apple, mobile telefl, samsung, iPhone, xiomi, xiaomi, redmi, pornografija, honor, oppo, Nokia, Sonya, mi, pc, web, kompiuteris, Informacija apie Šiukšlių surinktuvas, Kas yra Šiukšlių surinktuvas? Ką reiškia Šiukšlių surinktuvas?

Siam straipsniui ar jo daliai truksta isnasu į patikimus saltinius Jus galite padeti Vikipedijai pridedami tinkamas isnasas su saltiniais Siuksliu surinktuvas angl garbage collector kai kuriu programavimo kalbu Java C vykdomosios sistemos dalis automatiskai naikinanti vykdomojo kodo nebepasiekiamus objektus Nepasiekiami objektai gali tureti vidiniu nuorodu vienas į kita teoriskai tai neapsaugo ju nuo panaikinimo taciau prasciau parasyti surinkikliai gali nesugebeti to padaryti sukeldami atminties nutekejima Siuksliu surinkimas programavimo savoka reiskianti automatizuota atminties valdyma Pries sunaikindamas objekta surinktuvas iskviecia to objekto uzbaigiklį Surinktuvu tipaiKlasikinis siuksliu surinktuvas savo darbo metu pristabdo vykdoma pagrindine programa Kai kada tarkim zaidimuose tokios pauzes nepriimtinos Tuomet naudojamas inkrementinis surinktuvas kuris dirba nuolat siek tiek suletindamas pagrindines programos vykdymo greitį Daugiaprocesorinese sistemose dar gali buti naudojamas lygiagretus surinktuvas kuris savo darbui uzima viena is procesoriu palikdamas kitus vykdomai programai Straipsnio rasymo metu zinomi inkrementiniai ir lygiagretus surinkejai dirba leciau nei klasikiniai todel juos naudoti be reikalo neverta Laiko momentas kuomet bus sunaikintas objektas taip pat ir kada bus iskviestas jo uzbaigiklis paprastai nera determinuotas netgi tada kai pati kalba turi metodus surinktuvui suzadinti kaip System gc Java kalboje Tokie metodai laikomi rekomendaciniais ir virtuali masina ju paisyti neprivalo Nuskaitymo principaiSiuksliu surinktuvas perziuri visus pasiekiamus objektus tuos į kurios tebeegzistuoja nuorodos ir nenaudoja laiko atmesti nepasiekiamiems į kuriuos nuorodu jau nebera Todel paprastai neverta nenaudojamu objektu saugoti podeliuose buferiuose tikintis juos panaudoti pakartotinai juodai dienai susikaupe objektai surinktuvo darba gali suletinti daugiau nei reikia laiko naujiems prireikus sukurti Tokie dalykai tikslingi tik jei objektai labai dideli susije su kitais resursais duomenu bazes jungtimis ir pan sukurimo algoritmas labai sudetingas arba objektu kaupiama nedaug Objektus kaupti pakartotinam panaudojimui verta jei yra labai daug procesoriu surinktuvai daznai neefektyvus su daug procesoriu ir svarbu juos suzadinti kuo reciau GeneracijosDauguma naujai sukurtu objektu egzistuoja trumpai bet nedidele ju dalis gyvena daug ilgiau Dabartiniai surinktuvai daznai optimizuojami isskiriant jaunos ir senos generacijos sritis Nauji objektai pirmiausia kuriami jaunos generacijos srityje kuri kiekvienos surinkimo sesijos metu istustinama beveik visa Islike objektai perkeliami į senos generacijos sritį kuriai surinkimo operacija galima atlikti daug reciau Kartais buna dar trecia nuolatines generacijos angl permanent generation sritis kurios objektai negali buti pasalinti kol apskritai veikia virtuali masina sistemines klases ir pan Atminties fragmentacijaIlgiau dirbant iskyla atminties fragmentacijos problema skiriant vieta naujiems objektams raikoma nuo istisines atminties dalies taciau atlaisvinus laisvas tampa tik to objekto naudotas palyginus nedidelis fragmentas Ilgiau padirbus atmintis gali likti sudalyta į daug nedideliu saleliu kuriu nebus galima panaudoti prireikus vietos didesniam naujam objektui Atminties fragmentacijos problema sprendziama įvairiai paprasciausiu atveju pritrukus vietos objektai perstumdomi taip sukuriant reikiamo didumo sritį Siekiant sumazinti fragmentacija kartais isskiriama didesne nei reikia atminties sritis pavyzdziui dydis baitais visada kartotinis astuoniems kad ja atlaisvinus butu lengviau panaudoti antra karta Paskirstytas siuksliu surinktuvasPaskirstytas surinktuvas angl distributed garbage collector reikalingas kuomet programa susideda is skirtinguose kompiuteriuose vykdomu ir tik per tinkla saveikaujaciu daliu Serveris kliento prasymu gali sukurti nuotolinį objekta ir perduoti jo nuoroda klientui taciau nera akivaizdu kiek ilgai jis turi ta sukurta nuotolinį objekta saugoti kada klientui jo tikrai daugiau nebeprireiks Paskirstytas surinktuvas paprastai remiasi nuomos laiko principu Klientas gaves is serverio nuotolinio objekto nuoroda praso siusdamas specialia zinute objekta saugoti norima laiko trukme Serveris atsakydamas siuncia nuomos suteikimo zinute pranesdamas kiek ilgai jis apsiima saugoti objekta suteiktas saugojimo laikas gali buti trumpesnis nei prasytas Jei siam laikui besibaigiant objektas vis dar reikalingas klientas siuncia nauja prasyma suteikti nuoma Jei kliento programa naturaliai arba avariniu budu uzsibaigia kitose sistemos dalyse saugomi susije objektai tiesiog pasalinami pasibaigus nuomos laikui Kartais buna specialios zinutes jog objektas nebereikalingas taciau jas naudoti sunku nes realiame tinkle zinuciu gavimo tvarka nebutinai lygi ju siuntimo tvarkai Įvairus siuksliu surinktuvai pamazu tampa svarbia fundamentaliu informatikos tyrimu sritimi kuriai daug padeda pastaruoju metu atsiradusios atviro kodo Java ir kitos virtualios masinos reikalingas saltinis

Naujausi straipsniai
  • Rugpjūtis 11, 2025

    1997 m. UEFA Intertoto taurė

  • Rugpjūtis 11, 2025

    1952 m. Nobelio premijos laureatai

  • Rugpjūtis 16, 2025

    17-asis Lietuvos korespondencinių šachmatų čempionatas

  • Rugpjūtis 12, 2025

    1635 m. pr. m. e.

  • Rugpjūtis 13, 2025

    1634 m. pr. m. e.

www.NiNa.Az - Studija

    Susisiekite
    Kalbos
    Susisiekite su mumis
    DMCA Sitemap
    © 2019 nina.az - Visos teisės saugomos.
    Autorių teisės: Dadash Mammadov
    Nemokama svetainė, kurioje galima dalytis duomenimis ir failais iš viso pasaulio.
    Viršuje