Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net GC.Collect在AppDomain上获取有效MonitoringSurvivedMemorySize值的最大间隔_.net_Appdomain_.net 4.7.2 - Fatal编程技术网

.net GC.Collect在AppDomain上获取有效MonitoringSurvivedMemorySize值的最大间隔

.net GC.Collect在AppDomain上获取有效MonitoringSurvivedMemorySize值的最大间隔,.net,appdomain,.net-4.7.2,.net,Appdomain,.net 4.7.2,我有一个用c#编写的windows服务,它使用AppDomain实例进行分离。要监视和管理AppDomain实例,我使用“应用程序域资源监视”选项 要获取AppDomain.MonitoringSurvivedMemorySize的有效值,我必须调用GC.Collect。由于这是一项繁重的工作,我只想尽量少说 是否有一种常量或其他方法来确定间隔是多少,这对于不让运行MonitoringSurvivedMemorySize属性重置并返回零而不是上次检测到的内存量是必要的 我当然可以尝试通过反复试验

我有一个用c#编写的windows服务,它使用
AppDomain
实例进行分离。要监视和管理
AppDomain
实例,我使用“应用程序域资源监视”选项

要获取AppDomain.MonitoringSurvivedMemorySize的有效值,我必须调用
GC.Collect
。由于这是一项繁重的工作,我只想尽量少说

是否有一种常量或其他方法来确定间隔是多少,这对于不让运行
MonitoringSurvivedMemorySize
属性重置并返回零而不是上次检测到的内存量是必要的

我当然可以尝试通过反复试验来获得时间间隔,但不能保证我得到的值在其他环境中是相同的。

或者有没有其他方法可以可靠地获取这些信息?

没有时间间隔。当GC完成时,该值将更新,这仅由内存使用情况驱动。或GC.Collect()。不适用于细粒度监视目的,只是不要调用Collect()。您最多将关闭大约16MB,对于serverGC来说会更多。还表明,只有在完全阻塞后,该值才是准确的collection@Hans帕桑特:在阅读了其他人关于这个问题的一些帖子后,我的印象是,在一段时间没有GC操作之后,属性重置为零。如果我理解您的评论是正确的,则情况并非如此,而且明确地说,只有GC操作才能更改属性的值。如果你能回答我的意见,我很乐意接受。