Gostiteljska aplikacija spremlja vire, ki jih porabi AppDomain. Nekateri gostitelji uporabljajo te podatke za ugotavljanje, ali poraba pomnilnika ali procesorja AppDomain presega ustrezno raven, in prisilijo odstranitev AppDomaina.
Spremljanje lahko uporabite tudi za primerjavo porabe virov različnih algoritmov in določite, kateri algoritem porabi manj virov. Ker spremljanje AppDomain samodejno povzroča dodatne stroške, mora gostitelj nastaviti statično lastnost AppDomain MonitoringEnabled na true, da prikaže odprto nadzorovanje.Nadzora ni mogoče izklopiti, ko je enkrat vklopljen; Če poskušate nastaviti MonitoringEnabled na false, se sproži ArgumentException。
Ko je nadzor vklopljen, lahko vaša koda poizveduje po naslednjih štirih lastnostih, ki jih zagotavlja razred AppDomain.
- MonitoringSurvivedProcessMemorySize Ta statična lastnost int64 vrne število bajtov, ki jih uporabljajo vsi AppDomaini, ki jih nadzoruje trenutna instanca CLR. Ta številka je zagotovo natančna šele ob zadnjem odvozu smeti.
- Lastnost MonitoringTotalAllocatedMemorySize tega Int64 primera vrne število bajtov, dodeljenih določenemu AppDomainu. Ta številka je zagotovo natančna šele ob zadnjem odvozu smeti.
- Lastnost MonitoringSurvivedMemorySize te instance Int64 vrne število bajtov, ki jih trenutno uporablja določena AppDomain. Ta številka je zagotovo natančna šele ob zadnjem odvozu smeti.
- MonitoringTotalProcessorTime je lastnost instance TimeSpan, ki vrača porabo procesorja za določen AppDomain.
Naslednje prikazuje, kako uporabiti te tri lastnosti za preverjanje sprememb v AppDomain med dvema časovnima točkama:
Spodaj je prikazano, kako uporabljati razred AppDomainMonitorDelta
|