gpt4 book ai didi

.net - 为什么配置 .NET 垃圾收集器不起作用?

转载 作者:行者123 更新时间:2023-12-01 11:38:50 25 4
gpt4 key购买 nike

我很难理解如何将 .NET 4.0 上的垃圾收集器模式从工作站模式更改为并发模式。我发现我需要将这些行添加到一些配置文件中:

<configuration>
<runtime>
<gcConcurrent enabled="true"/>
</runtime>
</configuration>

但是,我不确定他们在这里指的是什么配置文件。尽管如此,我还是去了 C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config 下的 ma​​chine.config 希望这是一个机器范围的设置,但仍然没有帮助。我注意到我的 dll 也有自己的配置文件,但更新这些文件也无济于事。请注意,我的应用程序没有 app.config。

稍后我在 nunit 中运行了一个测试 dll,我还想将 GC 模式设置为 Concurrent。所以我想我应该在C:\Program Files (x86)\NUnit 2.6.2\bin下配置nunit:nunit-x86.exe.config。这也没有任何效果。

有什么线索吗?我应该更新哪个配置文件?

谢谢,问候, 索林

最佳答案

这有几个可能的原因。在我的脑海中:

  • 没有 app.config 文件显然是个问题。 CLR 只读取 yourapp.exe.config 文件进行配置
  • 您可能根本没有启用工作站 GC。 Windows 服务器版本的默认设置是服务器 GC,配置有 <gcServer> .config 文件中的元素
  • 您可能正在运行调试器并启用了 Visual Studio 托管进程。由于 EXE 名称不同,它使用不同的 .config 文件。配置文件必须命名为 yourapp.vshost.exe.config

当您可以看到正在使用哪个 .config 文件时,猜测这个没有多大意义。从提升的 Visual Studio 命令提示符运行 Fuslogvw.exe(右键单击快捷方式并选择以管理员身份运行)。单击设置并勾选“记录所有绑定(bind)到磁盘”。运行你的程序。单击刷新并查看其中一个日志条目,您将看到类似于以下内容的一行:

LOG: Using application configuration file: c:\projects2\ConsoleApplication43\bin\Debug\ConsoleApplication43.vshost.exe.Config

举个例子,这个是为虚拟控制台模式应用程序生成的,使用 F5 启动并在项目的“调试”选项卡中勾选“托管进程”选项。

关于.net - 为什么配置 .NET 垃圾收集器不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24033949/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com