» Poradna » Programy

Odstranovani z pameti v c#

 |   | 

delam si takovou vecicku pro smartphone v c#. zacinam s tim, ale neni mi jedna vec.
jestli to chapu dobre tak narozdil od c++ se z pameti odstanujou objekty v c# samy garbage collectorem. takze kdyz udelam tohle:

Trida a=new Trida();
Trida b=new Trida();
a=b;

tak by se melo to co bylo v a z pameti odstranit ne? me se ale deje to, ze se postupne v tom smartphonu zaplacava pamet, i kdyz by nemela. zajimavy je, ze treba nekdy se to nezvetsuje a pak zas chvili jo, jako kdyby ten collector pracoval nejak podivne. daji se take v c# definovat destruktory a odstranovani pameti si ridit sam (preci jen ma smartphone jen 10MB pameti, takze si nemuzu dovolit plytvat)? omlouvam se za dotaz ale v c# zacinam

Odpovědi na otázku

 |   | 

no a=b ti spravi to,ze nastavi ukazovatele na to iste miesto v pamati, neskopiruje a do b,ako by sa zdalo. Treba si spravit kopirovaciu funkciu,alebo pouzit nejaku metodu pokial robis v .Net. Na konci pre istotu daj delete a; ked to skopirujes (alebo del a; uz prense neviem.) Snad som ti pomohol,aj ked som sa niekde mohol seknut,lebo uz som dlho neprogramoval...

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   | 

nerobim v c#, ale poviem ti ako to funguje v jave, co tipujem ze je podobne...
ako si spravne predpokladal v tvojom priklade, po priradeni a = b, by sa mala povodna instancia z pamate odstranit.
ale nerobi sa to automaticky v tom momente.... pokial virtualna masina usudi, ze jej dochadza pamat/alebo sa pripadne
prilis nudi,vtedy spusta GC. Mozno sa pocas behu tvojej aplikacie nespusti ani raz... takze preto sa ti moze zdat praca
gc divna, ona aj je, je za tym velka magia... ;)
pouzivanie destruktorov a odstranovanie instancii z pamati vo vlastnej rezii je krokom spat. programator
sa ma sustredit na to aby jeho program robil to na co je urceny, a veci ktore sa daju automatizovaat nech necha na VM..
su vsak aj specialne pripady ked sa o dealokovanie roznych nativnych resourcoch musi postarat programator, kde to zanho VM nevie
urobit.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   | 

dik za odpoved. cetl jsem, ze se da garbage collector volat manualne, takze ho asi vzdycky kdyz bude treba zavolam. jeste jednou dik

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   | 

len si daj pozor na to, ze ak budes casto volar garbage collector, tak to bude mat vplyv na vykon aplikacie. Caste volanie GC.Collect() ktorym manualne volas cistenie pamate zatazuje system.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   | 

tak to si asi budu muset dat fakt bacha, pac smartphone moc vykonu nepobral :)

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   | 

ja by som sa spolahol na garbage collector. Ak bude systemu chybat pamat, mal by sa postarat o jej vycistenie. Ja som GC.Collect() volal len v pripadoch ked som pracoval s COM a tahal som cez to Word a Excel. Vtedy som to volal pre okamzite uvolnenie, lebo tie objekty tam zaberali naozaj dost miesta.

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: Garbage




Určitě si přečtěte

Rekordy počasí: V Česku to ještě jde, skutečné extrémy zažívají jinde

Rekordy počasí: V Česku to ještě jde, skutečné extrémy zažívají jinde

** Teplotní extrémy dokážou překvapit. Seznamte se s rekordy v Česku i ve světě ** Rekordní hodnoty jsou mnohdy až k neuvěření ** Zjistěte, kdy ke bylo největší horko, zima, déšť či vítr

Karel Kilián | 7

Porno insider: Jak virtuální realita vstupuje do filmů pro dospělé

Porno insider: Jak virtuální realita vstupuje do filmů pro dospělé

** Pornografie údajně představuje třetinu internetové obsahu a je technologický tahounem ** Do erotického obsahu postupně zasahuje i virtuální realita ** Kromě vizuálního vjemu se pracuje také na virtuálním uspokojení toho hmatového

Jan Dudek | 28

Apple: naše mapy budou nejlepší na světě. Tajně jsme na nich pracovali několik let

Apple: naše mapy budou nejlepší na světě. Tajně jsme na nich pracovali několik let

** Apple odhalil své plány na zcela nové mapy ** Několik let pracuje na nových mapách, které by měly předběhnout konkurenci ** Objeví se s příchodem iOS 12 pro vybrané státy

Karel Javůrek | 50

Alan Turing: Genius, který matematicky stvořil počítač

Alan Turing: Genius, který matematicky stvořil počítač

Řešením matematického problému se dostal k modelu teoretického stroje, který nese jeho jméno a je základem logiky univerzálních počítačů.

Pavel Tronner | 57


Aktuální číslo časopisu Computer

Velký test 18 bezdrátových sluchátek

Vše o přechodu na DVB-T2

Procesory AMD opět porážejí Intel

7 NVMe M.2 SSD v přímém souboji