eo eo eo eo eo eo eo eo eo eo eo en eo es lt eo eo eo eo de es eo eo eo eo eo sv ur eo eo eo eo es eo eo eo eo eo eo eo eo tr fi eo eo it eo eo eo eo eo eo eo eo eo eo ar bg ca hbs_lat de el en es fa fi fr lt he hbs_lat hu id it ja ko lt be ms nl nb pl pt ru sl hbs_lat sv ta tr fy zh eo eo eo eo eo eo eo eo eo
El Vikipedio, la libera enciklopedio
Senrubigilo estas tekniko en programlingvo por rultempe aŭtomate (dum fona tasko) kolekti kaj redisponigi ne plu uzatan ĉefmemoron.
Programado konsistas interalie el la kreado de multaj datumblokoj, ĉiu kiu rezervas parton en la memoro, kiu iam devas esti liberigata por reuzo.
La programlingvo ĝenerale havas konstruilon kiu kreas novan objekton (Konto k = new Konto();), kaj rezervas memoron. La posta liberigo povas okazi per la eksplicita voko de detruilo, kiel en la programlingvo C++ (delete k; aŭ blokfino) aŭ povas okazi implicite, per kolektado de rubo (makulaturo) en aparta interna tasko, kiel en Java.
La eksplicita liberigo estis longe favorata, kiel plej superiora rilate al memorutiligo kaj rapideco. Tamen ĝi riskas fragmentado de la memoro (en la tuta memoro estiĝadas truoj de libera memoro, tro malgrandaj por reuzi) kaj cima programado (ne liberigante objektojn).
La aŭtomata senrubigilo sekurigis ekzemple ĝavon (Java), sed komence zorgis pri maloftaj, sed tiuokaze rimarkeblaj paŭzoj kiam la tuta memoro estis senrubigata. Per Java SE 6 jam preskaŭ realtempaj postuloj rilate al la senrubigo eblas, kaj jam antaŭ tio ekzistis realtempaj Java rultempmaŝinoj de aliaj partioj.
Ĉi-tempe la rapideco de Java kun senrubigo povas esti pli alta ol C++ kun eksplicita liberigo. La kialo estas ke la memoradministrado en C++ (kreado, forigado) ankaŭ kostas tempo, precipe se oni samtempe volas preventi tro grandan fragmentadon de memoro.
Oni konkludu ke inter ambaŭ la sistemoj de kreado kaj liberigo de memoro ne ekzistas vera gajnanto. La teorie pli bonaj funkciaj lingvoj jam ĉiam aplikis senrubigilon, ĉar la datumoj estas kreitaj kiel rezulto de funkcivokoj, kaj ne ekzistas variabloj kiel adreso de iu memorbloko.
Informoj pri la paĝo
Citi ĉi tiun artikolon
Ĉi tiu paĝo estis lastafoje redaktita je 15:30, 10 mar. 2013.
La teksto disponeblas laŭ la permesilo Krea Komunaĵo Atribuite-Samkondiĉe 3.0 Neadaptita; eble aldonaj kondiĉoj aplikeblas. Vidu la uzkondiĉojn por detaloj.
Regularo pri respekto de la privateco
Vidigo por porteblaj aparatoj