Posted By: Rat (prilis mnoho her) on 'CZprogram' Title: Re: garbage collectoryyyyyyy Date: Mon Nov 15 10:43:33 2004 Zdar znovu ;), > > pozadavku, ktery popisoval Quasimodo. Samozrejme, namitas, ze zde muzou > byt > > cross reference, ja namitam, ze cross reference nejsou az tak caste, > zvlaste > > u pripadu, ktery Quasimodo popisoval. > > Ano, nejsou tak caste. Jenze v praktickem zivote radeji dam programatorum > do ruky pravidlo "NIKDY nepouzivejte destructory pro dealokaci zdroju", > nezli "destruktory pro dealokaci zdroju pouzivat muzete, ale pozor na > cross-reference". Bude to tak praktictejsi. I pri debugovani pak je snazsi > si vybavit (a zodpovedet) otazku "uzaviras zdroje?" nez "nehrozi mi nekde > cross-reference?". Na to, abys byl schopen zodpovedet otazku "uzaviras zdroje?" musis mit komplexni predstavu o veci, kterou pises. Coz je IMHO v nekterych pripadech nejen tezke, ale hlavne nechtene. Otazka "nehrozi mi nekde cross-reference" je defakto otazkou slusneho navrhu. Zalezi, za jak velke prasata pak ty programatory povazujes ;) > A v okamziku, kdy se i autori jazyka (resp. reseni GC) shodnou na tom, > ze tento pristup je praktictejsi, tak pochopitelne daji tvemu a Quasimodovu > pohledu na vec nizsi prioritu. No me v tomhle smeru napada, ze nejde o princip, jak by mel fungovat, ale implementace GC pri techto podminkach je mozna jednodussi. > Jde mi ciste o ten dopad na realny vyvoj software. Tim, ze umoznim > dealokaci zdroju v destruktoru, ziskam jen jakousi estetiku, jeji prinos > bude dle meho prevazen rizikem zaneseni tezko odhalitelnych chyb. Zacatek viz vyse - realny vyvoj SW by mel (je recht, ze ta praxe je dycky jinak) probihat tak, ze se navrhne nejaky zaklad a pak prijde 3rd-party a zacne nejakym zpusobem SW ovlivnovat, pochopitelne bez modifikace originalu. Kdyz predas te 3rd party veci nejaky zdroj, prestavas byt (jedinym) panem jeho zivotniho cyklu - jak muzes pak vedet, kdy jej muzes uzavrit?? > Je to vec vkusu a pristupu, mluvim za sebe a myslim, ze i za filosofii > jazyka Java, ale za objektivni pravdu to pochopitelne prohlasit nemohu :-) To byva dycky, otazka toho, s cim se kdo potkal, proto se ted poprve snazim byt dost konkretni ;) > Nemohu rict, ze se na GC v Jave spolehat neda. Pouze se neda spolehat > na to, ze k ruseni objektu dojde tehdy, kdy bych si pral - v tom citim > preci jen jisty rozdil. > > A myslim, ze praxe ukazuje, ze to s tou degradaci tak zle neni. > Jak uz jsem napsal, je o to reseni rozporu mezi idealem a pragmatickou > snahou znesnadnit programatorovi dopoustet se obtizne odhalitelnych chyb. ... jaks psal vyse, asi dost otazkou nazoru... for jerryiii: s tou pameti - coz pro typicky objektovy jazyk plati - temer vyjimecne alokujes nejake velke flaky pameti. Navic, i kdyz jsou velke, tak je zase nekdy pozdeji pouzijes ;) Zalezi hodne na konkretni implementaci, ale dle mych zkusenosti jsou v praktickych pripadech velmi uspesne... > Pavel Krysa rat@atrey.karlin.mff.cuni.cz Jsem Krysa http://atrey.karlin.mff.cuni.cz/~rat/