Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.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
使用gcServer的经验=";“真的”;为.NET设置垃圾收集器的步骤_.net_Asp.net_Performance_Garbage Collection - Fatal编程技术网

使用gcServer的经验=";“真的”;为.NET设置垃圾收集器的步骤

使用gcServer的经验=";“真的”;为.NET设置垃圾收集器的步骤,.net,asp.net,performance,garbage-collection,.net,Asp.net,Performance,Garbage Collection,是否有人使用了启用垃圾收集器的配置,该垃圾收集器针对使用Aspnet.config的多处理器计算机进行了优化: <gcServer enabled="true"/> <gcConcurrent enabled="true"/> 您的站点的性能有改进吗? 是否注意到任何问题?首先,并发和服务器是互斥的选项。有关服务器GC误解的详细信息,请参阅。但是,默认情况下,ASP.NET托管服务器GC(请参阅),因此不会有任何区别 对于ASP.NET网站,我建议使用服务器而不是并

是否有人使用了启用垃圾收集器的配置,该垃圾收集器针对使用Aspnet.config的多处理器计算机进行了优化:

<gcServer enabled="true"/>
<gcConcurrent enabled="true"/>

您的站点的性能有改进吗?

是否注意到任何问题?

首先,并发和服务器是互斥的选项。有关服务器GC误解的详细信息,请参阅。但是,默认情况下,ASP.NET托管服务器GC(请参阅),因此不会有任何区别

对于ASP.NET网站,我建议使用服务器而不是并发。对于用户模式应用程序,由于服务器GC将导致“挂起”,因此并发GC一直是用户响应

我使用了服务器GC,并注意到在某些情况下有显著的改进


不过,如果用户应用程序使用的是巨大的内存池,并且变得高度碎片化,那么服务器模式GC确实可以帮助用户应用程序。

简单地说,工作站GC模式可以提高单个用户的性能,而服务器GC模式则设计用于始终具有多个请求的程序。我真的希望这个问题不是一个更大问题的征兆。有时,当人们开始询问垃圾收集器时,是因为他们没有看到预期的内存占用。不要期望使用不同的垃圾收集器获得巨大的收益。在我所做的几乎所有测试中,使用哪种收集器几乎没有什么区别。

(我知道这是一个很老的问题,但我还是想补充一下)

服务器GC和并发GC之间有一个主要区别:服务器GC每个处理器有一个线程,在执行收集时挂起该处理器上的线程,服务器并发GC线程与其他线程并行运行,即不挂起。看到更多微妙的差异


根据一个周期所需的时间,这可能会对应用程序的用户响应性产生很大的影响,所以请明智地选择。对于没有用户界面的ASP.NET,服务器GC是更好的(也是默认的)选项。

这在4.5中发生了变化,它引入了服务器并发GC:@skolima Yes-不过,您只需将其保留为“Server”,它会自动使用新的并发服务器GCSee可能您会得到答案