Værtsapplikationen overvåger de ressourcer, der forbruges af AppDomain. Nogle værter bruger denne information til at afgøre, om hukommelses- eller CPU-forbruget i et AppDomain overstiger det relevante niveau, og tvinger et AppDomain til at blive afinstalleret.
Du kan også bruge overvågning til at sammenligne ressourceforbruget for forskellige algoritmer og afgøre, hvilken algoritme der bruger færrest ressourcer. Da AppDomain-overvågning i sig selv medfører overhead, skal værten sætte AppDomains statiske egenskab MonitoringEnabled til true for at vise åben overvågning.Overvågning kan ikke slukkes, når den først er tændt; Hvis du prøver at sætte MonitoringEnabled til falsk, kastes en ArgumentException。
Når overvågningen er slået til, kan din kode forespørge følgende fire skrivebeskyttede egenskaber, som AppDomain-klassen leverer.
- MonitoringSurvivedProcessMemorySize Denne statiske Int64-egenskab returnerer antallet af bytes, der bruges af alle AppDomains, der kontrolleres af den aktuelle CLR-instans. Dette tal er kun garanteret korrekt, når den sidste affaldsindsamling blev foretaget.
- Egenskaben MonitoringTotalAllocatedMemorySize for denne Int64-instans returnerer antallet af bytes, der er tildelt et specifikt AppDomain. Dette tal er kun garanteret korrekt, når den sidste affaldsindsamling blev foretaget.
- Egenskaben MonitoringSurvivedMemorySize for denne Int64-instans returnerer antallet af bytes, der aktuelt er i brug af en bestemt AppDomain. Dette tal er kun garanteret korrekt, når den sidste affaldsindsamling blev foretaget.
- MonitoringTotalProcessorTime er en TimeSpan-instansegenskab, der returnerer CPU-forbruget for en specifik AppDomain.
Følgende demonstrerer, hvordan man bruger disse tre egenskaber til at tjekke for ændringer i et AppDomain mellem to tidspunkter:
Følgende demonstrerer, hvordan man bruger AppDomainMonitorDelta-klassen
|