有人使用过启用了多处理器优化垃圾回收机制的配置,使用Aspnet.config吗?
<gcServer enabled="true"/>
<gcConcurrent enabled="true"/>
你的网站的性能有改进吗?
注意到了任何问题吗?
有人使用过启用了多处理器优化垃圾回收机制的配置,使用Aspnet.config吗?
<gcServer enabled="true"/>
<gcConcurrent enabled="true"/>
你的网站的性能有改进吗?
注意到了任何问题吗?
首先,Concurrent和Server是互斥的选项。有关服务器GC误解的详细信息,请参见此博客文章。然而,默认情况下,ASP.NET主机使用服务器GC(请参见Scott Hanselman的讨论),因此在那里不会有任何区别。
我建议在ASP.NET网站中坚持使用服务器GC而不是并发GC。对于用户模式应用程序,采用并行GC可以提高用户响应速度,但服务器GC会导致“挂起”现象。
我使用过服务器GC,并注意到在某些情况下有显着改进。
然而,如果您的用户应用程序正在使用巨大的内存池并且存在高度分段,则服务器模式GC确实有助于用户应用程序。
(虽然这是一个很老的问题,但我还是想加上这个答案)
Server GC和Concurrent GC之间有一个主要的区别:Server GC对应每个处理器一个线程,并在进行垃圾回收时暂停该处理器上的线程,而服务器Concurrent GC线程与其他线程并行运行,即不暂停。更多细微的差异请参见此MSDN文章。
根据一个循环所需的时间,这可能会对应用程序的用户响应能力产生相当大的影响,因此选择时需要明智。在ASP.NET的情况下,没有UI,Server GC是更好(默认)的选项。