【问题标题】:.NET - Is there a way to change the GC behavior for the entire machine?.NET - 有没有办法改变整台机器的 GC 行为?
【发布时间】:2009-08-12 17:38:02
【问题描述】:

一位同事说这是可能的(但我觉得有点奇怪)。
如果有办法做到这一点,我在哪里可以做到这一点?
我说的是winXP操作系统。

【问题讨论】:

    标签: .net windows windows-xp


    【解决方案1】:

    是的,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)。

    【讨论】:

    • 不要忘记 gcConcurrent,虽然不是真正的模式,但它是(可以是)GC 的机器范围配置
    • 谢谢。我忘记了那个。
    • Tess Fernandez 有一篇很棒的文章,其中包含有关不同 GC 模式的详细信息 -> blogs.msdn.com/tess/archive/2008/04/17/…
    • @adrianbanks:很好的链接。谢谢!
    • 谢谢大家! - @Scott @Marc @adrianbanks
    猜你喜欢
    • 2022-01-21
    • 1970-01-01
    • 2012-10-27
    • 1970-01-01
    • 2014-04-26
    • 2016-06-12
    • 1970-01-01
    • 2010-09-23
    • 2020-08-03
    相关资源
    最近更新 更多