c# – 什么是ASP.NET Core中的服务器垃圾收集?

我已将ASP.NET Core项目升级到VS2017和新的csproj,并且有以下选项:
<PropertyGroup>
    <ServerGarbageCollection>true</ServerGarbageCollection>
</PropertyGroup>

什么是服务器垃圾收集?没有适当的文件,只是一个migration guide,假设你已经知道它是什么.

(除非有正式文件,否则请让我知道.)

总结:遗憾的是,文档中没有关于大量基础技术的详细信息.不过,@ PanagiotisKanavos的链接对于“server gc”here来说非常重要.

解决方法

似乎是正常(工作站)和并发(服务器)垃圾收集策略之间的区别.基本上,工作站方法在许多极端情况下遇到问题.而且大量的多线程方案(如ASP Webservers)是极端情况的主要例子:

https://social.msdn.microsoft.com/Forums/en-US/286d8c7f-87ca-46b9-9608-2b559d7dc79f/garbage-collection-pros-and-limits?forum=csharpgeneral

请注意,并发GC具有弱引用和碎片整理的自然问题,但如果适用于.NET Core实现超出了我的知识范围. .NET核心团队可以对代码进行各种改进,并进入设计GC内存管理器的领域.

也许它只定义了标记部分将使用多少个并发线程(工作站默认值为1).它还可能包括一些修改的内存分配策略,以避免诸如碎片整理之类的问题.在任何一种情况下,实现集合本质上都必须运行单线程,停止所有被管理的线程,并将受到内存速度而不是CPU速度的限制.

相关文章

本文将从上往下,循序渐进的介绍一系列相关.NET的概念,先从...
基于 .NET 的一个全新的、好用的 PHP SDK + Runtime: Pe...
.NET 异步工作原理介绍。
引子 .NET 6 开始初步引入 PGO。PGO 即 Profile Guided Opti...
前言 2021/4/8 .NET 6 Preview 3 发布,这个版本的改进大多来...
前言 开头防杠:.NET 的基础库、语言、运行时团队从来都是相...