如何在.NET Core中启用服务器垃圾回收?

25

我有一个在VS2017开发的.NET Core应用程序(MyApp.exe),它运行在SDK1.0.4版本上。我尝试添加一个包含以下条目的App.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <runtime>
    <gcServer enabled="true"/>
  </runtime>
</configuration>

构建时将其重命名为:MyApp.config

但这并不会更改GC模式;有什么想法吗?

2个回答

43
根据 这个来源,你可以通过 csproj 文件来完成这项任务:
<PropertyGroup>
  <ServerGarbageCollection>true</ServerGarbageCollection>
</PropertyGroup>

4
.Net Core 2是否仍然适用? - johnny 5
3
可能对人们有用的一些信息:根据我在这里这里发现的,我发现尽管再次执行dotnet build,设置并没有改变。结果发现先执行dotnet clean应该就可以解决问题了。 - Jarak
可能需要进行重新构建。 - davidcarr
即使是 .NET Core 3.1,这仍然是正确的。 - Jim Aho

4

有几种方法,取决于所使用的dotnet版本。

enter image description here

runtimeconfig.json文件:

{
   "runtimeOptions": {
      "configProperties": {
         "System.GC.Server": true
      }
   }
}

项目文件:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <ServerGarbageCollection>true</ServerGarbageCollection>
  </PropertyGroup>

</Project>

您可以在这里找到更多详细信息,其中涉及到垃圾回收的不同类型。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接