C# 实时获取子Appdomain cpu使用率、内存使用率和线程数
3-在进程中创建的子appdomain(主appdomain),以及如何实时获取子appdomain的cpu使用率、内存使用率和线程数?cpu使用率和其他相关信息并不真正适用于.Net appdomain,它只存在于CLR级别,而不存在于OS级别。因此,默认情况下,您只能在流程级别跟踪这些详细信息C# 实时获取子Appdomain cpu使用率、内存使用率和线程数,c#,memory,cpu,monitoring,appdomain,C#,Memory,Cpu,Monitoring,Appdomain,3-在进程中创建的子appdomain(主appdomain),以及如何实时获取子appdomain的cpu使用率、内存使用率和线程数?cpu使用率和其他相关信息并不真正适用于.Net appdomain,它只存在于CLR级别,而不存在于OS级别。因此,默认情况下,您只能在流程级别跟踪这些详细信息 自.Net 4.0以来,AppDomain具有名为MonitoringEnabled的静态属性。设置后,您可以使用其他属性(AppDomain.Monitor)跟踪详细信息。请注意,这仍然不是实时的。
自.Net 4.0以来,AppDomain具有名为
MonitoringEnabled
的静态属性。设置后,您可以使用其他属性(AppDomain.Monitor
)跟踪详细信息。请注意,这仍然不是实时的。这可能是一个好的开始。使用以下方法,获取的值似乎不正确
public static double GetAppDomainCpuUsage(AppDomain hostDomain)
{
if (Process.GetCurrentProcess().TotalProcessorTime.TotalMilliseconds > 0)
return hostDomain.MonitoringTotalProcessorTime.TotalMilliseconds * 100 / Process.GetCurrentProcess().TotalProcessorTime.TotalMilliseconds;
return 0;
}
public static double GetAppDomainMemoryUsage(AppDomain hostDomain)
{
if (AppDomain.MonitoringSurvivedProcessMemorySize > 0)
return (double)hostDomain.MonitoringSurvivedMemorySize * 100 / (double)AppDomain.MonitoringSurvivedProcessMemorySize;
return 0;
}
AppDomain.MonitoringIsEnabled=true 这是在2014年11月4日关闭的时候被问到的。谷歌搜索揭示了一切。哈哈,这是搜索中的第一个