.NET - 有没有办法改变整个机器的GC行为?

时间:2009-08-12 17:38:03

标签: .net windows windows-xp

一位同事说这是可能的(但对我来说看起来有点奇怪) 如果有办法,我可以在哪里做到这一点? 我说的是winXP OS。

1 个答案:

答案 0 :(得分: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

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

gcConcurrent

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

但是,一般情况下,您不希望更改GC操作模式,尤其是在机器级别,除非您有 非常 真的 有充分的理由。通常,唯一关心这一点的是托管CLR的非托管应用程序(例如SQL Server或IIS)。