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

前端之家收集整理的这篇文章主要介绍了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 Core相关文章