为什么配置.NET垃圾回收器不会';不行?
我正在努力理解如何将.NET4.0上的垃圾收集器模式从工作站模式更改为并发模式。我发现我需要在一些配置文件中添加以下行:为什么配置.NET垃圾回收器不会';不行?,.net,garbage-collection,.net,Garbage Collection,我正在努力理解如何将.NET4.0上的垃圾收集器模式从工作站模式更改为并发模式。我发现我需要在一些配置文件中添加以下行: <configuration> <runtime> <gcConcurrent enabled="true"/> </runtime> </configuration> 但是,我不确定它们在这里指的是什么配置文件。尽管如此,我还是转到了C:\Windows\Microsoft.NET\F
<configuration>
<runtime>
<gcConcurrent enabled="true"/>
</runtime>
</configuration>
但是,我不确定它们在这里指的是什么配置文件。尽管如此,我还是转到了C:\Windows\Microsoft.NET\Framework\v4.0.30319\config下的machine.config,希望这是一个机器范围的设置,但仍然没有帮助。我注意到我的DLL也有自己的配置文件,但更新这些文件也没有帮助。
请注意,我的应用程序没有app.config
稍后,我在nunit中运行了一个测试dll,我还想将GC模式设置为并发。所以我想我应该在C:\ProgramFiles(x86)\nunit 2.6.2\bin下配置nunit:nunit-x86.exe.config。这也没有任何效果
有什么线索吗?我应该更新哪个配置文件
谢谢,
问候语,
SorinAFAIK默认情况下启用并发模式 默认情况下,运行时使用并发垃圾收集,这是针对延迟而优化的。如果将元素的enabled属性设置为false,则运行时将使用非并发垃圾收集,这是针对吞吐量而优化的。下面显示如何禁用并发垃圾回收
请检查这可能有几个原因。不经意间:
- 没有app.config文件显然是个问题。CLR仅读取yourapp.exe.config文件进行配置
- 您可能根本没有启用工作站GC。Windows服务器版本的默认值是服务器GC,在.config文件中配置了
元素 - 您可能正在使用调试器运行,并且启用了Visual Studio宿主进程。它使用不同的.config文件,因为EXE名称不同。配置文件必须命名为yourapp.vshost.exe.config
举个例子,这是为一个虚拟控制台模式应用程序生成的,从F5开始,在项目的调试选项卡中勾选了托管进程选项。否,在我的机器上,它不处于并发模式;无论如何,不管默认模式是什么,问题是如何在特定模式下配置GC?