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

Oha*_*esh 2 .net windows windows-xp

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

Sco*_*man 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>
Run Code Online (Sandbox Code Playgroud)

用于gcServer:

  • false - 不运行服务器垃圾回收.这是默认值.
  • true - 运行服务器垃圾回收.

用于gcConcurrent:

  • false - 不同时运行垃圾收集.
  • true - 同时运行垃圾收集.这是默认值.

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