gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 04:27:29 26 4
gpt4 key购买 nike

我已经将一个 ASP.NET Core 项目升级到 VS2017 和新的 csproj,并且有这个选项:

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

什么是服务器垃圾回收?没有适当的文档,只有 migration guide假设您已经知道它是什么。

(除非有正式文档,在这种情况下请告诉我。)


总结:不幸的是,文档中没有关于大部分底层技术的详细信息。但是@PanagiotisKanavos 的链接有关于“服务器 gc”的重要信息 here .

最佳答案

这似乎是普通(工作站)和并发(服务器)垃圾收集策略之间的区别。基本上,Workstation 方法在许多极端情况下都会遇到问题。大规模多线程场景(如 ASP Web 服务器)是这种极端情况的主要示例:

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

请注意,并发 GC 存在弱引用和碎片整理等自然问题,但我不知道这是否适用于 .NET Core 实现。 .NET Core 团队可以对代码进行各种改进,这进入了设计 GC 内存管理器的领域。

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

关于c# - 什么是 ASP.NET Core 中的服务器垃圾回收?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44134508/

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