.net core 关于F#项目中服务器GC的警告
我正在做我的第一个F#项目,我正在试验Hopac图书馆 我在Mac上使用的是dotnet 3.1.300版。我已使用以下命令初始化了我的项目:.net core 关于F#项目中服务器GC的警告,.net-core,f#,.net Core,F#,我正在做我的第一个F#项目,我正在试验Hopac图书馆 我在Mac上使用的是dotnet 3.1.300版。我已使用以下命令初始化了我的项目: dotnet new console --language F# dotnet add package Hopac 在使用Hopac库编写之后,按以下方式运行程序: dotnet run 程序的运行时行为符合我的预期,但我得到以下警告: 警告:您正在使用单线程工作站垃圾回收,这意味着并行程序无法扩展。请将程序配置为使用服务器垃圾回收 根据SO中几个线
dotnet new console --language F#
dotnet add package Hopac
在使用Hopac库编写之后,按以下方式运行程序:
dotnet run
程序的运行时行为符合我的预期,但我得到以下警告:
警告:您正在使用单线程工作站垃圾回收,这意味着并行程序无法扩展。请将程序配置为使用服务器垃圾回收
根据SO中几个线程的建议,添加以下子句:
<ServerGarbageCollection>true</ServerGarbageCollection>
true
我在fsproj配置中尝试了以下操作:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<ServerGarbageCollection>true</ServerGarbageCollection>
</PropertyGroup>
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Compile Include="Program.fs" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Hopac" Version="0.4.1" />
</ItemGroup>
</Project>
真的
Exe
netcoreapp3.1
此外,我还尝试:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<ServerGarbageCollection>true</ServerGarbageCollection>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Compile Include="Program.fs" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Hopac" Version="0.4.1" />
</ItemGroup>
</Project>
真的
Exe
netcoreapp3.1
但同样的警告依然存在。我是.NET配置文件的新手,所以我是否犯了一些明显的错误?谢谢在项目的根目录下创建runtimeconfig.template.json
{
"configProperties": {
"System.GC.Server": true
}
}
要验证是否正常工作,请在代码打印中执行以下操作:
printfn "%A" System.Runtime.GCSettings.IsServerGC
这应该是真的
由于某些原因,SDK版本的设置不起作用。我有理由相信您也可以在代码中进行设置。@BentTranberg您知道如何在代码中进行设置吗?