2009-08-12 91 views

回答

9

是的,GC有两种操作模式:服务器和工作站。您可以在app.config(每个应用程序)或machine.config中更改模式。有关更多信息,请参见http://blogs.msdn.com/junfeng/archive/2004/07/13/181534.aspx

<Configuration> 
    <runtime> 
     <gcServer enabled="false" /> 
     <gcConcurrent enabled="true" /> 
    </runtime> 
</Configuration> 

对于gcServer

  • - 不运行服务器的垃圾收集。 这是默认设置。
  • true - 运行服务器垃圾回收。

gcConcurrent

  • - 不同时运行垃圾回收。
  • true - 同时运行垃圾收集。 这是默认设置。

但一般情况下,你不想改变GC操作模式,尤其是在一台机器的水平,除非你有一个真的真的很好的理由。通常,唯一关心这个问题的是托管CLR的非托管应用程序(如SQL Server或IIS)。

+0

不要忘了gcConcurrent,虽然不是一个真正的模式,但它是(可以)一个机器宽配置到GC – Marc 2009-08-12 17:50:52

+0

谢谢。我已经忘记了那个。 – 2009-08-12 17:52:51

+1

Tess Fernandez有一篇很棒的文章,包括不同GC模式的细节 - > http://blogs.msdn.com/tess/archive/2008/04/17/how-does-the-gc-work-and-what -are-the-different-generations.aspx – adrianbanks 2009-08-12 18:21:33

相关问题