1. using nema veze sa konzervacijom memorije, to je samo 'precica' za koriscenje disposable objekata (od uslovom da koriste iDisposable) i smanjuje kucanje koda, ne upotrebu memorije.
sledeca dva bloka su prilicno identicna:
Code:
using (X a = new X())
{
a.nesto();
}
Code:
X a = new X();
try
{
a.nesto();
}
finally
{
a.Dispose();
}
2. Ovo je losa praksa, .NET runtime je savrseno sposoban da pozove odgovarajuci collect u optimalnom trenutku. Rucnim pozivanjem kreiras dva problema, prvi je da stalno forsiras GC da pretrazuje stablo objekata bez potrebe, drugi je da svaki preziveli objekat pri collectu bude promovisan u visu generaciju, tako da ce ti posle dva poziva colelct() svi zivi objekti zavrsiti u generaciji 2 i .net ih nece moci pocistiti dok ne zakljuci da mu je potrebno skupo ciscenje druge generacije sto moze da potraje i do kraja same aplikacije, samim tim ne da nisi smanjio memory footprint nego si ga samo povecao. Pogledaj ovaj blog u vezi situacija u kojima ima smisla pozivati collect():
http://blogs.msdn.com/ricom/archive/2003/12/02/40780.aspx
3. Ta memorija koju obojca gledate u task manageru se zove "working set", tj sva memorija koja je dodeljena procesu na koriscenje ukljucujuci i stranice koje nisu u samom RAMu. Alokacija working set-a je skuplji proces i windows tezi da aplikacijama da slobode i onda za njih neiskoriscene stranice drzi u virtuelnom modu i ne oduzima im working set dok bas ne zagusti (npr ako imas upaljeno vise procesa i minimizujes svoj prozor videces da ce pasti working set). Da vidite koliko zapravo memorije aplikacija ima alocirano morate da startujete perfmon i da pratite proces gledajuci "private bytes" merac.
Tako da samo opusteno, suma sumarum svih working setova svih aplikacija gotovu uvek prelazi velicinu fizickog rama, to jednostavno nije dobar pokazatelj potrosnje memorije.
To view your actual memory use perfmon and under process select private bytes
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić