[ Boris B. @ 09.09.2010. 11:23 ] @
Zna li neko za dobar alat sa kojim moze da se analizira (runtime, u tekucoj aplikaciji) koji su sve objekti zauzeti (referencirani u object graphu) i koje su generacije ako nemaju referencu?

Najvise me zanima mogucnost da za zadati tip T dobijem listu aktivnih referenci na sve objekte tipa T, ili za referencu na konkretni objekat O da dobijem sve ostale reference na taj objekat O. Alat moze da bude u obliku eksternog profajlera ili runtime klase koju mogu da ugradim u Debug konfiguraciju assemblija. Za sada koristim princip da u klasama koje hocu da pratim brojim reference u jedan private static, povecavajuci brojac u konstruktoru i smanjujuci u destruktoru, ali to nije univerzalno i moram da subklasujem sve klase sto ponekad nije moguce (sealed klasa ili factory method koji proizvodi konacni tip).

Postoji li tako nesto?
[ lukeguy @ 09.09.2010. 12:23 ] @
Nešto ovako?
http://blogs.msdn.com/b/oldnew...chive/2010/08/12/10049155.aspx
[ Boris B. @ 09.09.2010. 15:38 ] @
Nisi razumeo, ne trebaju meni reference na objekte da bih mogao da ih menjam/invokujem metode, nego samo da ih prebrojim tj. da vidim da li se i kada oslobadjaju. Imam jako komplikovanu aplikaciju sa ogromnim, medjusobno povezanim parent-child grafovima i zanima me da li se i kada reference oslobadjaju, posto aplikacija radi 24/7/365.
[ lukeguy @ 09.09.2010. 18:40 ] @
Svejedno je za čega ti trebaju, pitanje je isto: "How can I find all objects of a particular type?", a odgovor je dat u blogu.
[ mmix @ 09.09.2010. 20:27 ] @
Ako GC moze da ih nadje da ih oslobodi onda sigurno postoje strukture koje to cuvaju, pitanje je samo koji je njihov format i dostupnost (veorvatno mora da se prcka kroz unsafe kod u C++/CLIu). U svakom slucaju tebi treba memory profiler tool. Nije obicaj da se reklamiraju alatke ovde ali posto je ova prilicno jedinstvena predlozio bih ti da je pogledas:

http://www.memprofiler.com/

ima besplatan 14 day trial, sto je meni bilo vise nego dovoljno da dijagnostikujem moj problem.

Tebi treba ovaj view: http://www.memprofiler.com/sna...s.aspx#Types_Resources_Details
[ Boris B. @ 09.09.2010. 21:48 ] @
Hvala mmix, to izgleda da je upravo to sto mi treba. Btw. nije reklama kad neko trazi, nego "preporuka"

Citat:
lukeguy: Svejedno je za čega ti trebaju, pitanje je isto: "How can I find all objects of a particular type?", a odgovor je dat u blogu.

Nije odgovor dat u blogu, u blogu se analiziraju imaginarne posledice koriscenja imaginarnog metoda Type.GetInstances() na veoma podrugljiv nacin, mislio sam da ili me zayebavas za glupo pitanje ili da nisi shvatio, pri cemu sam uljudno odgovorio na ovo drugo.
[ mmix @ 09.09.2010. 23:14 ] @
Pogledaj malo sam profiler, mislim da ima svoj API koji mozes da referenciras iz tvog procesa i onda mozes i iz samog svog programa da kazes profajleru kad da uradi snapshot ako te mrzi da sedis pored progrma i cekas :) Neki tajmer pa na 12h ili slicno.